Docker : Docker Network2020/12/16 |
This is the basic usage to configure Docker Network.
|
|
[1] | When running containers without specifying network, default [nat] network is assigned. |
# display network list 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 # display details of [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] is assigned as container network by default 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] | If you'd like to assign another network, set like follows. |
# create network [network01] with [192.168.100.0/24] subnet 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 # run a container with specifying [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 # to attach the network to existing running container, set like follows 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 # attach network to specify an IP address in the subnet 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 # to disconnect the network, set like follows 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] | To remove docker networks, set like follows. |
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 # remove [network01] PS C:\Users\Administrator> docker network rm network01 network01 # remove networks which containers don't use at all 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] | To connect to Host network, not nat, set like follows. |
# confirm network adapter name 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 # create [transparent01] network with [transparent] driver # for [com.docker.network.windowsshim.interface="***"], specify adapter name confirmed above 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 # run a container with [transparent01] network 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 # display IP address (it is assigned by DHCP server in your local network) 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 # verify accesses PS C:\Users\Administrator> curl.exe 10.0.0.204 Dockerfile test example |
Sponsored Link |