Docker撰写链接不与主机模式一起工作
如果我使用“主机”模式,使得docker链接工作有问题。 如果使用“主机”模式,如何访问其他链接的Docker容器?
一个例子:
如果我使用下面的这2个组合文件,我可以运行下面的代码:
$ docker-compose up
$ docker exec -it [容器ID为REDIS1] 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 [容器ID为REDIS1] bash
$ redis-cli -h redis2 =>这只是挂起…从来没有连接到redis2
你如何从redis1连接到redis2(当它在主机模式)?
--net=host
不支持链接。 链接现在也被弃用(哲学)。 更喜欢使用自定义networking。
看起来像Docker由于其复杂性而select不支持这个用例,请参阅这里的GitHub问题 。