Docker ( 7 ) ~ 複数コンテナの連携 1 ~

November 02, 2017

相手コンテナの情報を設定する

Docker では —link オプションを用いることにより、すでに起動している通信相手のコンテナの IP アドレスや EXPOSE しているポート番号などの情報がコンテナに設定される。

まずは httpd コンテナを起動する。

$ sudo docker run -d httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
Digest: sha256:5eafd4b4774375dc385fa0ed980b76a1a63e5102e5a3a9baaabe3b9d2eef877c
Status: Downloaded newer image for httpd:latest
1236a98ee638ef3491b906b2c1c4057e6879418e87c53250f522168cd313d21d

busybox から新たにコンテナを起動する際に —link オプションで先に起動したコンテナを httpd という名前でリンクさせる。

$ sudo docker run -it --link 1236a98ee638:httpd busybox 
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
03b1be98f3f9: Pull complete 
Digest: sha256:3e8fa85ddfef1af9ca85a5cfb714148956984e02f00bec3f7f49d3925a91e0e7
Status: Downloaded newer image for busybox:latest

/ # env | sort
HOME=/root
HOSTNAME=59f71fbea0f4
HTTPD_ENV_APACHE_DIST_URLS=https://www.apache.org/dyn/closer.cgi?action=download&filename= 	https://www-us.apache.org/dist/ 	https://www.apache.org/dist/ 	https://archive.apache.org/dist/
HTTPD_ENV_HTTPD_PATCHES=
HTTPD_ENV_HTTPD_PREFIX=/usr/local/apache2
HTTPD_ENV_HTTPD_SHA256=777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00
HTTPD_ENV_HTTPD_VERSION=2.4.29
HTTPD_ENV_NGHTTP2_VERSION=1.18.1-1
HTTPD_ENV_OPENSSL_VERSION=1.0.2l-1~bpo8+1
HTTPD_NAME=/ecstatic_mcnulty/httpd
HTTPD_PORT=tcp://172.17.0.2:80
HTTPD_PORT_80_TCP=tcp://172.17.0.2:80
HTTPD_PORT_80_TCP_ADDR=172.17.0.2
HTTPD_PORT_80_TCP_PORT=80
HTTPD_PORT_80_TCP_PROTO=tcp
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TERM=xterm

/ # ping httpd
PING httpd (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=255 time=0.071 ms
64 bytes from 172.17.0.2: seq=1 ttl=255 time=0.052 ms
64 bytes from 172.17.0.2: seq=2 ttl=255 time=0.056 ms
^C
--- httpd ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.052/0.059/0.071 ms

/ # wget -qO - http://httpd/
<html><body><h1>It works!</h1></body></html>

ちゃんと通信できてる。


 © 2023, Dealing with Ambiguity