如果我使用“主机”模式,那么在使用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(当它处于主机模式时)?
答案 0 :(得分:2)
--net=host
不支持链接。链接也现在已被弃用(在哲学中)。喜欢使用自定义网络。
答案 1 :(得分:1)
由于其复杂性,看起来Docker选择不支持此用例,请参阅GitHub issue here。