[Docker] ネットワーク

– 三つのネットワーク: bridge, host, none
bridgeがよく使われる

$ sudo docker run -dit –name web01 -p 8080:80 httpd:2.4
$ sudo docker run -dit –name web02 -p 8081:80 httpd:2.4

$ sudo docker container inspect web01
– NetworkSettingsの部分にIPアドレスが記載される
“IPAddress”: “172.17.0.2”,

$ sudo docker container inspect –format=”{{.NetworkSettings.IPAddress}}” web01
172.17.0.2
$ sudo docker container inspect –format=”{{.NetworkSettings.IPAddress}}” web02
172.17.0.3

接続されているコンテナのIPアドレス一覧
$ sudo docker network inspect bridge
ホストのIP
# sudo apt install net-tools
$ ifconfig
$ sudo iptables –list -t nat -n

### Dockerホスト同士の通信
bridgeネットワークに接続されているため、コンテナ同士で通信ができる

$ sudo docker run –rm -it ubuntu /bin/bash
# apt update
# apt -y upgrade
# apt install -y iproute2 iputils-ping curl
# ip address
# ping -c 4 172.17.0.2
# ping -c 4 172.17.0.3
# curl http://172.17.0.2/
# curl http://172.17.0.3/

Dockerネットワークを作成、–linkオプションを指定で通信相手を特定できる
$ sudo docker run –rm -it –link web01:web01 –link web02:web02 ubuntu /bin/bash
※linkオプションを使うことでコンテナ名で通信ができるようになる

ニャルほどー
前進してるようなしてないような…