Docker のネットワーク状態を調べる (original) (raw)
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 に接続できるのも納得です。
まとめ
コンテナ間通信について理解が深まった気がします。