Ansible`docker_container`选项`network_mode`和`networks-它们相交吗?

时间:2018-07-04 13:23:07

标签: docker ansible docker-compose ansible-2.x

我正在构建一个剧本,我想在其中将容器部署到主机网络。 Ansible docs提到两个选项:different_data = mydataframe[(mydataframe["insert1"] != mydataframe["insert2"]) | (mydataframe["delete1"] != mydataframe["delete2"])] network_mode。如果我想将容器连接到默认主机网络,则可以选择(语法类似于Ansible剧本):

networks

等同于:

network_mode: host

如果没有,那么在两种情况下容器都将连接到什么网络(如果完全连接?)

2 个答案:

答案 0 :(得分:3)

这更多是Docker问题,而不是Ansible问题。通过阅读docker run文档的Network settings部分,您可以找到答案以外的其他详细信息。

使用networks键可将容器连接到名为的网络

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

因此如果您有一个名为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