コンテナ間の通信

コンテナを単体で利用することも可能ですが2台のコンテナを協調させて利用することも可能です。

ここではデータベースのコンテナと Webサーバーのコンテナの間で通信をさせます。イメージ training/postgres と training/webapp を使います。

[root@localhost ~]#  docker run -d --name db training/postgres
e9128e6fead84d451e47ca17e5cc9407f8ac6ab1a6ef79c37aa4b2055c17ceb1
[root@localhost ~]# docker inspect -f "{{ .NetworkSettings.IPAddress }}" db
172.17.0.32

[root@localhost ~]# docker run -t -i --rm --link db:db training/webapp /bin/bash
root@eb152537bbc3:/opt/webapp# cat /etc/hosts
172.17.0.33	eb152537bbc3
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.32	db

root@eb152537bbc3:/opt/webapp# apt-get install -yqq inetutils-ping
root@eb152537bbc3:/opt/webapp# ping db
PING db (172.17.0.32): 48 data bytes
56 bytes from 172.17.0.32: icmp_seq=0 ttl=64 time=0.452 ms
56 bytes from 172.17.0.32: icmp_seq=1 ttl=64 time=0.135 ms