Ansible `docker_container` 选项 `network_mode` 和 `networks` - 它们相交吗?
Ansible `docker_container` options `network_mode` and `networks` - are they intersecting?
我正在构建一个剧本,我想在其中将容器部署到主机网络。 Ansible docs 提到了两个选项:network_mode
和 networks
。如果我想将我的容器连接到默认主机网络,选项是(Ansible 剧本中的语法):
network_mode: host
相当于:
networks:
name: host
?
如果没有,容器在两种情况下连接的网络是什么(如果它完全连接?)
这更像是一个 Docker 问题,而不是 Ansible 问题。通过阅读 docker run
文档的 Network settings 部分,您可以找到我在回答中提供的内容以外的其他详细信息。
networks
密钥允许您将容器连接到 命名网络 。
network_mode
键允许您select 类型 网络来为您的容器创建(host
,bridge
, none
, 或特定容器的网络环境)。它不允许您直接连接到命名网络。
所以如果你有一个名为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
我正在构建一个剧本,我想在其中将容器部署到主机网络。 Ansible docs 提到了两个选项:network_mode
和 networks
。如果我想将我的容器连接到默认主机网络,选项是(Ansible 剧本中的语法):
network_mode: host
相当于:
networks:
name: host
?
如果没有,容器在两种情况下连接的网络是什么(如果它完全连接?)
这更像是一个 Docker 问题,而不是 Ansible 问题。通过阅读 docker run
文档的 Network settings 部分,您可以找到我在回答中提供的内容以外的其他详细信息。
networks
密钥允许您将容器连接到 命名网络 。
network_mode
键允许您select 类型 网络来为您的容器创建(host
,bridge
, none
, 或特定容器的网络环境)。它不允许您直接连接到命名网络。
所以如果你有一个名为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