docker 容器上的 Ansible 命令?
Ansible commands on docker containers?
到目前为止,我已经在 AWS EC2 实例上设置了我的 ansible-playbook 命令 运行ning。
我可以 运行 容器上的常规 ansible 命令,如(linefile、apt、pip 等)吗?
我可以将我的容器 IP 添加到容器组中的主机文件,然后执行相同的代码吗,这里如果我更改具有
的 main.yml 文件
hosts: ec2-group
至
hosts:contaniers-group
所有命令都有效吗?
我有点初学者..请确认我实际上正在考虑制作docker-从头开始编写文件,并且运行 docker-使用ansible编写命令.
您 可以 ,但这并不是 Docker 的设计用途。
A Docker 容器 通常是单个进程的包装器。在标准设置中,您创建一个 image,其中构建并打包了该应用程序,您可以 运行 它而无需任何进一步设置。 运行 一个裸 Linux 分发容器(不会安装应用程序)或 运行 一个交互式 shell 作为主要容器进程通常并不有趣。 Docker 的 Build and run your image 之类的教程将逐步介绍此序列。
由此推论,容器通常没有任何本地状态。在最好的情况下,容器需要的任何状态都在外部数据库中;如果你不能这样做,那么你将本地状态存储在比容器更长寿的 volume 中。
最后,删除和重新创建容器非常常规。您需要这样做来更改一些常用选项;在像 Kubernetes 这样的集群环境中,这可能会发生在你的控制之外。发生这种情况时,新容器将重新启动 运行 其默认设置,并且它不会知道先前容器可能进行的任何手动更改。
所以您通常不想尝试直接在 运行ning 容器中安装软件,因为一旦容器退出,软件就会丢失。原则上,您可以在容器中获取 shell(通过 docker exec
),但这更像是一个调试工具,而不是管理工具。您可以使容器的唯一进程 运行s 成为 ssh 守护进程,但是一旦容器退出,您以这种方式启动的任何内容都会丢失(而且我从未见过正确且安全地设置凭据的方法访问它)。
我建议学习标准 Docker 文件系统和 运行 宁自包含的 Docker 图像,而不是尝试使 Ansible 适应这个相当不同的环境。
到目前为止,我已经在 AWS EC2 实例上设置了我的 ansible-playbook 命令 运行ning。
我可以 运行 容器上的常规 ansible 命令,如(linefile、apt、pip 等)吗?
我可以将我的容器 IP 添加到容器组中的主机文件,然后执行相同的代码吗,这里如果我更改具有
的 main.yml 文件hosts: ec2-group
至
hosts:contaniers-group
所有命令都有效吗?
我有点初学者..请确认我实际上正在考虑制作docker-从头开始编写文件,并且运行 docker-使用ansible编写命令.
您 可以 ,但这并不是 Docker 的设计用途。
A Docker 容器 通常是单个进程的包装器。在标准设置中,您创建一个 image,其中构建并打包了该应用程序,您可以 运行 它而无需任何进一步设置。 运行 一个裸 Linux 分发容器(不会安装应用程序)或 运行 一个交互式 shell 作为主要容器进程通常并不有趣。 Docker 的 Build and run your image 之类的教程将逐步介绍此序列。
由此推论,容器通常没有任何本地状态。在最好的情况下,容器需要的任何状态都在外部数据库中;如果你不能这样做,那么你将本地状态存储在比容器更长寿的 volume 中。
最后,删除和重新创建容器非常常规。您需要这样做来更改一些常用选项;在像 Kubernetes 这样的集群环境中,这可能会发生在你的控制之外。发生这种情况时,新容器将重新启动 运行 其默认设置,并且它不会知道先前容器可能进行的任何手动更改。
所以您通常不想尝试直接在 运行ning 容器中安装软件,因为一旦容器退出,软件就会丢失。原则上,您可以在容器中获取 shell(通过 docker exec
),但这更像是一个调试工具,而不是管理工具。您可以使容器的唯一进程 运行s 成为 ssh 守护进程,但是一旦容器退出,您以这种方式启动的任何内容都会丢失(而且我从未见过正确且安全地设置凭据的方法访问它)。
我建议学习标准 Docker 文件系统和 运行 宁自包含的 Docker 图像,而不是尝试使 Ansible 适应这个相当不同的环境。