Docker Compose链接无法与主机模式一起使用

时间:2016-04-29 19:37:38

标签: docker docker-compose

如果我使用“主机”模式,那么在使用docker链接时会遇到问题。如果使用“主机”模式,如何访问其他链接的docker容器?

一个例子:

如果我使用下面这两个撰写文件,我可以运行以下内容:

  

$ docker-compose up

     

$ docker exec -it [REDIS1的容器ID] bash

     

$ redis-cli -h redis2 [OR redis-cli -h redis2-alias]

     

$ PING =>你将从redis2获得PONG

搬运工-compose.yml

version: "2"
services:
  redis1:
    image: "redis"
    ports:
      - "6379"
    links:
    - redis2:redis2-alias
  redis2:
    extends:
      file: docker-compose.redis2.yml
      service: redis

搬运工-compose.redis2.yml

version: "2"
services:
  redis:
    image: "redis"
    ports:
      - "6379"

但是,如果您将docker-compose.redis2.yml更改为使用主机模式。当你尝试连接到redis2(来自redis1)时......它只是挂起而且永远不会连接

搬运工-compose.redis2.yml

version: "2"
services:
  redis:
    image: "redis"
    network_mode: "host"
  

$ docker-compose up

     

$ docker exec -it [REDIS1的容器ID] bash

     

$ redis-cli -h redis2 =>这只是挂起...永远不会连接到redis2

如何从redis1连接到redis2(当它处于主机模式时)?

2 个答案:

答案 0 :(得分:2)

--net=host不支持链接。链接也现在已被弃用(在哲学中)。喜欢使用自定义网络。

答案 1 :(得分:1)

由于其复杂性,看起来Docker选择不支持此用例,请参阅GitHub issue here