Docker : Docker Network2024/12/16 |
Docker コンテナーのネットワーク管理の基本操作です。 |
|
[1] | コンテナー起動時にネットワークを指定しない場合は、デフォルトの [nat] が使用されます。 |
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. # ネットワーク一覧表示 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3e2cfbe7d2ae docker-file_default nat local f7b77b9d0096 nat nat local faa4cfb2bcc1 none null local # [nat] の詳細表示 PS C:\Users\Administrator> docker network inspect nat [ { "Name": "nat", "Id": "f7b77b9d009642fe5a37c25471015003c17f4f996ce9ecc6afc79cf969bfcb7e", "Created": "2024-12-15T17:29:07.3530771-08:00", "Scope": "local", "Driver": "nat", "EnableIPv6": false, "IPAM": { "Driver": "windows", "Options": null, "Config": [ { "Subnet": "172.22.48.0/20", "Gateway": "172.22.48.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": { "com.docker.network.windowsshim.hnsid": "B213F3B5-1A92-40C0-BF1B-41F04F2ACA08", "com.docker.network.windowsshim.networkname": "nat" }, "Labels": {} } ] # コンテナーのネットワークはデフォルトでは [nat] が使用される PS C:\Users\Administrator> docker run mcr.microsoft.com/windows/servercore:ltsc2025 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::a3be:23c0:1d66:391f%21 IPv4 Address. . . . . . . . . . . : 172.22.62.224 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.22.48.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 9f76192ec3e78e476a88e8a3943ef42f1dafa70f1e13ce479ca2a47d3a175500 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3e2cfbe7d2ae docker-file_default nat local f7b77b9d0096 nat nat local 9f76192ec3e7 network01 nat local faa4cfb2bcc1 none null local # [network01] ネットワークを指定してコンテナーを起動 PS C:\Users\Administrator> docker run --net network01 mcr.microsoft.com/windows/servercore:ltsc2025 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::3b3:e67b:7b38:5774%25 IPv4 Address. . . . . . . . . . . : 192.168.100.15 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 5bf765d9059f srv.world/iis "cmd" 8 seconds ago Up 7 seconds 0.0.0.0:8081->80/tcp distracted_greider PS C:\Users\Administrator> docker exec 5bf765d9059f powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::2471:c002:6079:fa6b%25 IPv4 Address. . . . . . . . . . . : 172.22.60.108 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.22.48.1 # サブネット内の任意の IP アドレスを指定してコンテナーに割り当て PS C:\Users\Administrator> docker network connect --ip 192.168.100.10 network01 5bf765d9059f PS C:\Users\Administrator> docker exec 5bf765d9059f powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::2471:c002:6079:fa6b%25 IPv4 Address. . . . . . . . . . . : 172.22.60.108 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.22.48.1 Ethernet adapter vEthernet (Ethernet) 2: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::608c:d072:bdf6:4580%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 5bf765d9059f PS C:\Users\Administrator> docker exec 5bf765d9059f powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::2471:c002:6079:fa6b%25 IPv4 Address. . . . . . . . . . . : 172.22.60.108 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.22.48.1 |
[3] | 作成した Docker ネットワークを削除する場合は以下のように実行します。 |
PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3e2cfbe7d2ae docker-file_default nat local f7b77b9d0096 nat nat local 9f76192ec3e7 network01 nat local faa4cfb2bcc1 none null local # [network01] を削除 PS C:\Users\Administrator> docker network rm network01 network01 |
[4] | デフォルトの [nat] ではなくホストネットワークに接続する場合は以下のように実行します。 |
# ネットワークアダプター名確認 PS C:\Users\Administrator> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Ethernet Instance 0 Red Hat VirtIO Ethernet Adapter 6 Up 52-54-00-65-D1-5C 10 Gbps vEthernet (nat) Hyper-V Virtual Ethernet Adapter 12 Up 00-15-5D-F3-C3-AC 10 Gbps vEthernet (3e2cfbe7d2a... Hyper-V Virtual Ethernet Adapter #2 16 Up 00-15-5D-A8-47-87 10 Gbps vEthernet (Ethernet) Hyper-V Virtual Ethernet Container A... 25 Up 00-15-5D-F3-C5-83 10 Gbps # [transparent] ドライバーで [transparent01] ネットワーク作成 # [com.docker.network.windowsshim.interface="***"] は上で確認したアダプター名 PS C:\Users\Administrator> docker network create -d transparent -o com.docker.network.windowsshim.interface="Ethernet Instance 0" transparent01 PS C:\Users\Administrator> docker network ls NETWORK ID NAME DRIVER SCOPE 3e2cfbe7d2ae docker-file_default nat local f7b77b9d0096 nat nat local faa4cfb2bcc1 none null local 9a1eeab92372 transparent01 transparent local PS C:\Users\Administrator> docker network inspect transparent01 [ { "Name": "transparent01", "Id": "9a1eeab92372e70bfdb60f71a58a36d47ae89c7a4e9969cd29cf78fa50ecef8b", "Created": "2024-12-15T19:27:27.5200607-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": "8BB0D64F-DFD9-481A-845D-77EFF8F535EB", "com.docker.network.windowsshim.interface": "Ethernet Instance 0" }, "Labels": {} } ] PS C:\Users\Administrator> docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-file-web latest 9d2d11c741f2 53 minutes ago 5.31GB srv.world/iis-server latest 4e3d76bef20a About an hour ago 5.26GB mcr.microsoft.com/windows/servercore ltsc2025 f9fb7d5c26c9 7 days ago 5.14GB # [transparent01] ネットワークを指定してコンテナー起動 PS C:\Users\Administrator> docker run -dt --net transparent01 srv.world/iis-server 65173d39841167f0791f815389dd174103765f3fc7d482caa1fc5f21dabced3c PS C:\Users\Administrator> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 65173d398411 srv.world/iis-server "cmd" 12 seconds ago Up 10 seconds 80/tcp adoring_newton # IP アドレス確認 (DHCP サーバーから自動取得) PS C:\Users\Administrator> docker exec 65173d398411 powershell -c "ipconfig" Windows IP Configuration Ethernet adapter vEthernet (Ethernet): Connection-specific DNS Suffix . : srv.world Link-local IPv6 Address . . . . . : fe80::d396:9de8:6b69:2d1c%25 IPv4 Address. . . . . . . . . . . : 10.0.0.232 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.0.0.1 # アクセス確認 PS C:\Users\Administrator> curl.exe 10.0.0.232 Dockerfile test example |
Sponsored Link |
|