Docker のネットワーク状態を調べる
docker networkというコマンドがあり色々見れるみたいです
$ docker network --help Usage: docker network COMMAND Manage networks Commands: connect Connect a container to a network create Create a network disconnect Disconnect a container from a network inspect Display detailed information on one or more networks ls List networks prune Remove all unused networks rm Remove one or more networks Run 'docker network COMMAND --help' for more information on a command.
docker network ls
$ docker network ls NETWORK ID NAME DRIVER SCOPE abeed581a6dc bridge bridge local a53060f39b69 host host local 555a7ecb66ff mysql_default bridge local e09306dcac9b none null local f3be66c87503 plantuml_default bridge local
今あるネットワーク一覧が見れるようです。これは1つ勉強になった!
docker network inspect {NAME}
$ docker network inspect mysql_default | jq '.[] | {Name, Containers: (.Containers | map_values({Name, IPv4Address}) | to_entries | map(.value))}'
{
"Name": "mysql_default",
"Containers": [
{
"Name": "mysql",
"IPv4Address": "172.19.0.2/16"
},
{
"Name": "app",
"IPv4Address": "172.19.0.3/16"
}
]
}
必要な情報だけ取り出しましたが、mysql_default ネットワークに、2つのコンテナが所属していることがわかります。
これにより、app コンテナから mysql コンテナが見えていた ということになります。
なるほどーー。同一ネットワーク内にコンテナが2つ所属しているというのはこういう意味だったのか!これなら app コンテナから MySQL に接続できるのも納得です。
まとめ
コンテナ間通信について理解が深まった気がします。