Docker : Docker Network2020/12/16 |
Docker コンテナーのネットワーク管理の基本操作です。
|
|
[1] | コンテナー起動時にネットワークを指定しない場合は、デフォルトの [nat] が使用されます。 |
# ネットワーク一覧表示 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 835e5265281e administrator_default nat local 84fb0716e654 nat nat local 4a4ab2bf8de9 none null local # [nat] の詳細表示 PS C:\Users\Administrator> docker network inspect nat [ { "Name": "nat", "Id": "84fb0716e654da933857ea23cf9b7bb45c615583af0df2586281dc7099786326", "Created": "2020-12-15T22:03:50.6680838-08:00", "Scope": "local", "Driver": "nat", "EnableIPv6": false, "IPAM": { "Driver": "windows", "Options": null, "Config": [ { "Subnet": "172.18.224.0/20", "Gateway": "172.18.224.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": { "com.docker.network.windowsshim.hnsid": "848A89F5-CFB3-4D77-818A-3DC49C4C6DFB", "com.docker.network.windowsshim.networkname": "nat" }, "Labels": {} } ] # コンテナーのネットワークはデフォルトでは [nat] が使用される PS C:\Users\Administrator> docker run mcr.microsoft.com/windows/servercore:1809 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::f017:c45a:9576:257a%21 IPv4 Address. . . . . . . . . . . : 172.18.232.152 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.18.224.1 |
[2] | デフォルトの [172.18.224.0/20] 以外のサブネットでコンテナーを起動したい場合は、以下のように実行します。 |
# [network01] ネットワークを [192.168.100.0/24] のサブネットで作成 PS C:\Users\Administrator> docker network create -d "nat" --subnet "192.168.100.0/24" network01 b6ccadd1101d02118f69b1649e33e9b56f88152fd0ed56da647ba5feeb7d18e3 docker network ls NETWORK ID NAME DRIVER SCOPE 835e5265281e administrator_default nat local 84fb0716e654 nat nat local b6ccadd1101d network01 nat local 4a4ab2bf8de9 none null local # [network01] ネットワークを指定してコンテナーを起動 PS C:\Users\Administrator> docker run --net network01 mcr.microsoft.com/windows/servercore:1809 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::6973:b329:3b79:68df%25 IPv4 Address. . . . . . . . . . . : 192.168.100.206 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.100.1 # 起動済みのコンテナーに作成したネットワークを接続する場合は以下 PS C:\Users\Administrator> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43f4fd5c7833 srv.world/iis "cmd" 10 seconds ago Up 8 seconds 0.0.0.0:8081->80/tcp quirky_hermannPS C:\Users\Administrator> docker exec 43f4fd5c7833 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::480c:fc3b:6b06:a363%25 IPv4 Address. . . . . . . . . . . : 172.18.228.192 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.18.224.1 # サブネット内の任意の IP アドレスを指定してコンテナーに割り当て PS C:\Users\Administrator> docker network connect --ip 192.168.100.10 network01 43f4fd5c7833
docker exec 43f4fd5c7833 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::480c:fc3b:6b06:a363%25 IPv4 Address. . . . . . . . . . . : 172.18.228.192 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.18.224.1 Ethernet adapter vEthernet (Ethernet) 2: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::d9ca:8ddc:a838:cdc%29 IPv4 Address. . . . . . . . . . . : 192.168.100.10 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.100.1 # 接続したネットワークを切断する場合は以下 PS C:\Users\Administrator> docker network disconnect network01 43f4fd5c7833 PS C:\Users\Administrator> docker exec 43f4fd5c7833 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::480c:fc3b:6b06:a363%25 IPv4 Address. . . . . . . . . . . : 172.18.228.192 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.18.224.1 |
[3] | 作成した Docker ネットワークを削除する場合は以下のように実行します。 |
PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 835e5265281e administrator_default nat local 84fb0716e654 nat nat local b6ccadd1101d network01 nat local 4a4ab2bf8de9 none null local # [network01] を削除 PS C:\Users\Administrator> docker network rm network01 network01 # コンテナーで使用されていないネットワークを一括削除 PS C:\Users\Administrator> docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
administrator_default
|
[4] | デフォルトの [nat] ではなくホストネットワークに接続する場合は以下のように実行します。 |
# ネットワークアダプター名確認 PS C:\Users\Administrator> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- vEthernet (nat) Hyper-V Virtual Ethernet Adapter 9 Up 00-15-5D-9F-81-EC 10 Gbps Ethernet Intel(R) 82574L Gigabit Network Conn... 5 Up 52-54-00-05-80-B8 1 Gbps # [transparent] ドライバーで [transparent01] ネットワーク作成 # [com.docker.network.windowsshim.interface="***"] は上で確認したアダプター名 PS C:\Users\Administrator> docker network create -d transparent -o com.docker.network.windowsshim.interface="Ethernet" transparent01
docker network ls NETWORK ID NAME DRIVER SCOPE 84fb0716e654 nat nat local 4a4ab2bf8de9 none null local 83d4393b8873 transparent01 transparent localPS C:\Users\Administrator> docker network inspect transparent01 [ { "Name": "transparent01", "Id": "83d4393b8873869ea6965af480b4d45ddc61995615eb96e4b4e83ce6f4c1d0e9", "Created": "2020-12-15T23:57:06.3332974-08:00", "Scope": "local", "Driver": "transparent", "EnableIPv6": false, "IPAM": { "Driver": "windows", "Options": {}, "Config": [ { "Subnet": "0.0.0.0/0" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "f655e188d62d5c595a83b51b18ff6c57519072d8fa4bd6e384760543bef979f1": { "Name": "hungry_swirles", "EndpointID": "42397562c0296c3763cdd704be2a761e4759b408b415a001714e839db327850e", "MacAddress": "00:15:5d:63:80:eb", "IPv4Address": "", "IPv6Address": "" } }, "Options": { "com.docker.network.windowsshim.hnsid": "21B4D02D-4FD6-40B9-A2A6-1E07CC138842", "com.docker.network.windowsshim.interface": "Ethernet" }, "Labels": {} } ]PS C:\Users\Administrator> docker images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/iis-server latest d0b43de1e6a4 4 hours ago 5.32GB mcr.microsoft.com/windows/servercore 1809 5c1f582f60a9 12 days ago 5.12GB # [transparent01] ネットワークを指定してコンテナー起動 PS C:\Users\Administrator> docker run -t -d --net transparent01 srv.world/iis-server f655e188d62d5c595a83b51b18ff6c57519072d8fa4bd6e384760543bef979f1PS C:\Users\Administrator> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f655e188d62d srv.world/iis-server "cmd" 27 seconds ago Up 25 seconds 80/tcp hungry_swirles # IP アドレス確認 (DHCP サーバーから自動取得) PS C:\Users\Administrator> docker exec f655e188d62d powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet) 2: Connection-specific DNS Suffix . : srv.world Link-local IPv6 Address . . . . . : fe80::fc34:3e2d:f775:f192%21 IPv4 Address. . . . . . . . . . . : 10.0.0.204 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.0.0.1 # アクセス確認 PS C:\Users\Administrator> curl.exe 10.0.0.204 Dockerfile test example |
Sponsored Link |
|