Ansible "docker_container"选项"network_mode&quo



我正在构建一个剧本,我想在其中将容器部署到主机网络。Ansible 文档提到了两个选项:network_modenetworks。如果我想将容器连接到默认主机网络,可以选择(语法如 Ansible 剧本(:

network_mode: host

相当于:

networks:
name: host

如果不是,在这两种情况下,容器连接到的网络是什么(如果它真的连接了?

这更像是一个Docker问题,而不是一个Ansible问题。 例如,通过通读docker run文档的网络设置部分,您可以找到除我在答案中所说的内容之外的其他详细信息。

networks密钥允许您将容器连接到命名网络

network_mode键允许您选择要为容器创建的网络类型(hostbridgenone或特定容器的网络环境(。 它不允许您直接连接到命名网络。

因此,如果您有一个名为host的网络可用host该网络使用网络模式,则:

network_mode: host

相当于:

networks:
- name: host

但总的来说,它们让你做不同的事情。

如果您已经创建了一个 Docker 网络,例如您的 Docker 网络的名称是"myAppNetwork">,并且您想要部署一个新容器并将此新容器连接到现有的 docker 网络,请使用以下 Ansible 配置

- name: Add a container to a network, leaving existing containers connected
docker_network:
name: myAppNetwork
connected:
- Backend (Your docker container name)
appends: yes

参考: https://docs.ansible.com/ansible/2.4/docker_network_module.html#examples

最新更新