Docker 撰写链接不适用于主机模式

Docker Compose Links not working with Host mode

如果我使用 "host" 模式,在获取 docker 链接时会遇到问题。如果其他链接的 docker 容器使用 "host" 模式,您如何访问它?

一个例子:

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

$ docker-compose up

$ docker exec -it [CONTAINER ID OF REDIS1] bash

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

$ PING => you will get back PONG from redis2

docker-compose.yml

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

docker-撰写.redis2.yml

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

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

docker-撰写.redis2.yml

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

$ docker-compose up

$ docker exec -it [CONTAINER ID OF REDIS1] bash

$ redis-cli -h redis2 => this just hangs...never connects to redis2

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

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

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