我正在构建一个剧本,我想在其中将容器部署到主机网络。 Ansible docs提到两个选项:different_data = mydataframe[(mydataframe["insert1"] != mydataframe["insert2"]) | (mydataframe["delete1"] != mydataframe["delete2"])]
和network_mode
。如果我想将容器连接到默认主机网络,则可以选择(语法类似于Ansible剧本):
networks
等同于:
network_mode: host
?
如果没有,那么在两种情况下容器都将连接到什么网络(如果完全连接?)
答案 0 :(得分:3)
这更多是Docker问题,而不是Ansible问题。通过阅读docker run
文档的Network settings部分,您可以找到答案以外的其他详细信息。
使用networks
键可将容器连接到名为的网络。
使用network_mode
键,可以选择要为容器创建的网络的类型(host
,bridge
,none
或特定容器的网络环境)。它不允许您直接连接到命名网络。
因此如果您有一个名为host
的网络,该网络使用host
联网模式,则:
network_mode: host
等效于:
networks:
- name: host
但是总的来说,它们使您可以做不同的事情。
答案 1 :(得分:0)
如果您已经创建了一个 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