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
不支持链接。链接现在也被弃用(在哲学上)。更喜欢使用自定义网络。
如果我使用 "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
不支持链接。链接现在也被弃用(在哲学上)。更喜欢使用自定义网络。