无法 ping 链接 docker 容器服务
cannot ping linked docker container service
像这样简单的设置:
db:
image: mysql
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db:db
environment:
RAILS_ENV: development
如果我运行:
docker-compose build && docker-compose run web ping db
我得到:
Starting myapp_db_1
ping: unknown host
为什么?
如果我 运行:
docker-compose run cat /etc/hosts
我看到了这个:
Starting myapp_db_1
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 4af9653f843a
(值 4af9653f843a 在每个 运行 上变化)
我在 mac os x 上使用 docker-compose 1.6.2 和 docker 版本 1.10.3(所以 virtualbox 作为嗯)
为什么会这样?如何通过 hostname?
访问 Web 容器中的数据库容器
好的,我刚刚意识到我需要 运行
docker-compose up
至少一次我才能 ping 通它
像这样简单的设置:
db:
image: mysql
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db:db
environment:
RAILS_ENV: development
如果我运行:
docker-compose build && docker-compose run web ping db
我得到:
Starting myapp_db_1
ping: unknown host
为什么? 如果我 运行:
docker-compose run cat /etc/hosts
我看到了这个:
Starting myapp_db_1
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 4af9653f843a
(值 4af9653f843a 在每个 运行 上变化)
我在 mac os x 上使用 docker-compose 1.6.2 和 docker 版本 1.10.3(所以 virtualbox 作为嗯)
为什么会这样?如何通过 hostname?
访问 Web 容器中的数据库容器好的,我刚刚意识到我需要 运行
docker-compose up
至少一次我才能 ping 通它