Dockerにおいて表題の件についてメモ。
■ 環境
- Docker 1.10.3
- Docker Machine 0.6.0
- Docker Compsoe 1.6.2
- Mac OSX El Capitan
■ ネットワーク
Composeで起動したコンテナに見慣れないログが出ていた。
$ docker-compose up -d
Creating network "beat_default" with the default driver
Creating elasticsearch
Creating kibana
$ docker network ls
`docker-compose.yml`ではネットワークの設定を何もしていないのだが、ネットワークを勝手に作成しているようだ。またネットワークの名称は作業ディレクトリに”_default“が付けられている。
$ docker network ls
NETWORK ID NAME DRIVER
57690bbfada1 host host
beed7829864c beat_default bridge
1460bebe2d7f bridge bridge
329123ebfee2 none null
$
作成したコンテナは本当に作成されたネットワークにいるのだろうか?確認。
$ docker network inspect beat_default
[
{
"Name": "beat_default",
"Id": "beed7829864c44191dc8f1a7c89c8ec54a82e9076859ed06513707f22b1325ae",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1/16"
}
]
},
"Containers": {
"7fd67d9c5f0b45699a8f484591cbba5dadbbcbb39e14544c876e4ff79cf62966": {
"Name": "elasticsearch",
"EndpointID": "d2d48ccc63a24300121c7e52b3aee0b6092f06f4bc197c09b66bad8987d65879",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"966a2efd4730420f0aecb21ff50dbb12111dbf0815aef817f5f3ea8252825a27": {
"Name": "kibana",
"EndpointID": "40aa21617581b7fea4bc7131ef7cdb6440ba59d51d94347ccc06f2fc4a310d4c",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {}
}
]
$
確かに2つのコンテナがこのネットワーク上にあるようだ。ということは、ネットワーク設定を特に指定せずに上げたコンテナからのアクセスはできないのだろう。確認。
$ docker run -ti --rm centos:7 bash
[root@6f62b52fef18 /]# cat /etc/hosts
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.3 6f62b52fef18
[root@6f62b52fef18 /]# ping 172.18.0.2
PING 172.18.0.2 (172.18.0.2) 56(84) bytes of data.
^C
--- 172.18.0.2 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3015ms
[root@6f62b52fef18 /]# ping 172.18.0.3
PING 172.18.0.3 (172.18.0.3) 56(84) bytes of data.
^C
--- 172.18.0.3 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3007ms
[root@6f62b52fef18 /]#
サブネットが異なる。Composeで起動したコンテナは”172.18.0.0/16“のネットワークに接続されているが、何もネットワークの指定をしないでコマンドで起動したコンテナは、デフォルトの”bridge“ネットワークに起動されている。こちらは”172.17.0.0/16“のネットワークのようだ。
Composeで稼働させたコンテナ群でのみアクセス可能なようである。もちろん後からネットワークの接続を繋げることも可能なはずである。
以上。