docker - 将Ansible应用程序安装到Docker容器

标签 docker ansible dockerfile

我有一个可以使用ansible安装的应用程序。否,我想创建包含已安装应用程序的Docker镜像。

我的想法是从某个基本镜像启动docker容器,然后从外部计算机开始安装到该docker容器。之后,从该容器创建图像。

我只是从docker开始,请问这是个好主意,我该怎么做?

最佳答案

这不是创建Docker镜像的标准方法,也不是我要做的,但是它可以工作。考虑使用像Hashicorp的Packer这样的工具可以自动化此序列。

忽略工具的具体细节,有关docker build序列的重要一点是,您已将某些文件 checkin 源代码控制中,自动化过程可使用该文件来构建Docker镜像。带有Packer JSON模板的Ansible剧本将满足此基本要求。

不过,重要的是Docker运行时环境与通常使用Ansible配置的裸机系统或VM之间存在一些关键区别:不太可能将能够使用未经修改的现有剧本。例如,如果您的剧本尝试配置系统守护程序,安装systemd单元文件,添加ssh用户或其他标准系统管理任务,则这些通常在Docker中不相关或没有用。

我建议至少尝试使用标准Dockerfile打包应用程序,以真正了解生态系统。不要期望能够在Docker环境中使用未经修改的Ansible剧本;但是,如果您的组织具有丰富的Ansible经验,并且可以轻松地将“安装应用程序”与“配置服务器”分开,那么建议的方法在技术上是不错的。

关于docker - 将Ansible应用程序安装到Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745727/

相关文章:

docker - 有没有办法将主机名添加到现有的 docker 容器?

Docker-compose,Swag 错误 : "Your DockerHost is most likely running an outdated version of libseccomp"

docker - 使 docker 在 LAN 中可访问

ansible - 运行 ansible playbook 时如何缩小范围?

python - 属性错误 : 'module' object has no attribute 'moves'

docker - CentOS Docker 镜像的目的是什么?

ansible - 如果其他在 ansible 打印语句中

docker - 保存 Dockerfile ENV 变量以供将来使用

node.js - 多阶段 Dockerfile 导致空间不足

Docker 多阶段构建与将工件保存在 git 中