Docker : Docker Network2022/01/25 |
Docker コンテナーのネットワーク管理の基本操作です。
|
|
[1] | コンテナー起動時にネットワークを指定しない場合は、デフォルトの [nat] が使用されます。 |
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. # ネットワーク一覧表示 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3681aae29377 nat nat local 3edcf1153d19 none null local # [nat] の詳細表示 PS C:\Users\Administrator> docker network inspect nat [ { "Name": "nat", "Id": "3681aae293778d14a42b0c97aa6650851a721b46abb9aa67e7796d3968cd8c53", "Created": "2022-01-24T18:16:36.5492238-08:00", "Scope": "local", "Driver": "nat", "EnableIPv6": false, "IPAM": { "Driver": "windows", "Options": null, "Config": [ { "Subnet": "172.24.160.0/20", "Gateway": "172.24.160.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": { "com.docker.network.windowsshim.hnsid": "0729EC4F-404D-48F2-B325-A2375FD245A3", "com.docker.network.windowsshim.networkname": "nat" }, "Labels": {} } ] # コンテナーのネットワークはデフォルトでは [nat] が使用される PS C:\Users\Administrator> docker run mcr.microsoft.com/windows/servercore:ltsc2022 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::753e:221a:27b3:7444%14 IPv4 Address. . . . . . . . . . . : 172.24.167.99 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.24.160.1 |
[2] | デフォルトの [172.24.160.0/20] 以外のサブネットでコンテナーを起動したい場合は、以下のように実行します。 |
# [network01] ネットワークを [192.168.100.0/24] のサブネットで作成 PS C:\Users\Administrator> docker network create -d "nat" --subnet "192.168.100.0/24" network01 be888587579795f50f1177dff57ec5d18dac72a83423ae53649e7cb5e05de2ca PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3681aae29377 nat nat local be8885875797 network01 nat local 3edcf1153d19 none null local # [network01] ネットワークを指定してコンテナーを起動 PS C:\Users\Administrator> docker run --net network01 mcr.microsoft.com/windows/servercore:ltsc2022 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::b8a3:6b0b:1cf2:cf48%18 IPv4 Address. . . . . . . . . . . : 192.168.100.20 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 0065495abb3d srv.world/iis "cmd" 4 seconds ago Up 2 seconds 0.0.0.0:8081->80/tcp vigorous_tereshkova PS C:\Users\Administrator> docker exec 0065495abb3d powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::5406:409f:298:790c%18 IPv4 Address. . . . . . . . . . . : 172.24.166.130 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.24.160.1 # サブネット内の任意の IP アドレスを指定してコンテナーに割り当て PS C:\Users\Administrator> docker network connect --ip 192.168.100.10 network01 0065495abb3d PS C:\Users\Administrator> docker exec 0065495abb3d powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::5406:409f:298:790c%18 IPv4 Address. . . . . . . . . . . : 172.24.166.130 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.24.160.1 Ethernet adapter vEthernet (Ethernet) 2: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::998a:d856:7a1c:d1e1%22 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 0065495abb3d PS C:\Users\Administrator> docker exec 0065495abb3d powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::5406:409f:298:790c%18 IPv4 Address. . . . . . . . . . . : 172.24.166.130 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.24.160.1 |
[3] | 作成した Docker ネットワークを削除する場合は以下のように実行します。 |
PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3681aae29377 nat nat local be8885875797 network01 nat local 3edcf1153d19 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 |
[4] | デフォルトの [nat] ではなくホストネットワークに接続する場合は以下のように実行します。 |
# ネットワークアダプター名確認 PS C:\Users\Administrator> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- vEthernet (Ethernet) Hyper-V Virtual Ethernet Container A... 18 Up 00-15-5D-CF-F9-0F 10 Gbps vEthernet (nat) Hyper-V Virtual Ethernet Adapter 7 Up 00-15-5D-CF-FA-B0 10 Gbps Ethernet0 Intel(R) 82574L Gigabit Network Conn... 9 Up 00-0C-29-E7-79-55 1 Gbps # [transparent] ドライバーで [transparent01] ネットワーク作成 # [com.docker.network.windowsshim.interface="***"] は上で確認したアダプター名 PS C:\Users\Administrator> docker network create -d transparent -o com.docker.network.windowsshim.interface="Ethernet0" transparent01 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3681aae29377 nat nat local 3edcf1153d19 none null local a028ce2611e4 transparent01 transparent local PS C:\Users\Administrator> docker network inspect transparent01 [ { "Name": "transparent01", "Id": "a028ce2611e46a3ad42dadce25f72f3448a888aacb0aa50d453ea98f8a99c354", "Created": "2022-01-24T19:54:07.0028749-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": {}, "Options": { "com.docker.network.windowsshim.hnsid": "E9277179-2B8D-490E-80B8-B48A3B0051A6", "com.docker.network.windowsshim.interface": "Ethernet0" }, "Labels": {} } ] PS C:\Users\Administrator> docker images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/iis-server latest 0eaa2396d003 4 days ago 5.07GB mcr.microsoft.com/windows/servercore/iis latest 09adff3e2845 5 days ago 5.07GB mcr.microsoft.com/windows/servercore ltsc2022 11cbc9e36c7a 8 days ago 4.95GB # [transparent01] ネットワークを指定してコンテナー起動 PS C:\Users\Administrator> docker run -dt --net transparent01 srv.world/iis-server 3d3783c315d11e5b2b7f491458a9a7942641b7f95b13c5ed98f275267fb37416 PS C:\Users\Administrator> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d3783c315d1 srv.world/iis-server "cmd" 52 seconds ago Up 49 seconds 80/tcp focused_cartwright # IP アドレス確認 (DHCP サーバーから自動取得) PS C:\Users\Administrator> docker exec 3d3783c315d1 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet) 2: Connection-specific DNS Suffix . : srv.world Link-local IPv6 Address . . . . . : fe80::9eb:30fe:683f:8e11%26 IPv4 Address. . . . . . . . . . . : 10.0.0.244 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.0.0.1 # アクセス確認 PS C:\Users\Administrator> curl.exe 10.0.0.244 Dockerfile test example |
Sponsored Link |