13 Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索 五 使用自定义docker桥接网络 5.1 重新创建新的容器 5.2 重新创建新的容器,并且指定网络 5.3 docker网桥切换
[superman@docker ~]$ docker run -dit --name superman001 alpine
示例:
[superman@docker ~] $ docker run -dit --name superman001 alpine
a7479884a350b2ba36211d91a087f631640b068a2771ca766b9afda880113791
[superman@docker ~] $
[superman@docker ~] $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7479884a350 alpine "/bin/sh" About a minute ago Up About a minute superman001
[superman@docker ~] $
[superman@docker ~] $ docker inspect superman001 | grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
[superman@docker ~] $
[superman@docker ~] $ docker network ls
NETWORK ID NAME DRIVER SCOPE
1aa209e7f1ec br1 bridge local
e3124ecf5bf5 bridge bridge local
1fe81a14e4c7 host host local
008ae2f75ac2 none null local
[superman@docker ~] $
[superman@docker ~] $ docker network inspect e3124ecf5bf5
[
{
"Name": "bridge",
"Id": "e3124ecf5bf509eed6bae70009b6eee88edf8a3708e5ad0a680dee8804ea8817",
"Created": "2024-06-27T19:45:15.436074478+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"a7479884a350b2ba36211d91a087f631640b068a2771ca766b9afda880113791": {
"Name": "superman001",
"EndpointID": "e22b8b08c943b3524d8b5efae3603ebcb09f8d450ced89c038039cf2e5202ca4",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
[superman@docker ~] $
[superman@docker ~]$ docker run -dit --name superman002 --network br1 alpine
示例:
[superman@docker ~] $ docker run -dit --name superman002 --network br1 alpine
20280f606803e2cd997e6723fd4b1db1fa86074b9d919995890c97154252d0ab
[superman@docker ~] $
[superman@docker ~] $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20280f606803 alpine "/bin/sh" 5 seconds ago Up 4 seconds superman002
a7479884a350 alpine "/bin/sh" 7 minutes ago Up 7 minutes superman001
[superman@docker ~] $
[superman@docker ~] $ docker inspect superman002 | grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "172.16.1.2",
[superman@docker ~] $
[superman@docker ~] $ docker network ls
NETWORK ID NAME DRIVER SCOPE
1aa209e7f1ec br1 bridge local
e3124ecf5bf5 bridge bridge local
1fe81a14e4c7 host host local
008ae2f75ac2 none null local
[superman@docker ~] $
[superman@docker ~] $ docker network inspect 1aa209e7f1ec
[
{
"Name": "br1",
"Id": "1aa209e7f1ecfb2a31aff43199ac845b90030480b854dba1a3aa2a32cfda74a1",
"Created": "2024-06-24T11:22:13.046754701+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.16.1.0/24",
"Gateway": "172.16.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"20280f606803e2cd997e6723fd4b1db1fa86074b9d919995890c97154252d0ab": {
"Name": "superman002",
"EndpointID": "43ff4cf56a63c5f73045e195702dc9eeeef5de31501559700951146e3060332e",
"MacAddress": "02:42:ac:10:01:02",
"IPv4Address": "172.16.1.2/24",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
[superman@docker ~] $
在不同的linux-bridge | docker network之间,默认网络隔离。
[root@centos7 docker] # docker network disconnect bridge superman001
[root@centos7 docker] # docker network connect br1 superman001
示例:
[superman@docker ~] $ docker network disconnect bridge superman001
[superman@docker ~] $
[superman@docker ~] $ docker network connect br1 superman001
[superman@docker ~] $
[superman@docker ~] $ docker inspect superman001 | grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "172.16.1.3",
[superman@docker ~] $
[superman@docker ~] $ docker network ls
NETWORK ID NAME DRIVER SCOPE
1aa209e7f1ec br1 bridge local
e3124ecf5bf5 bridge bridge local
1fe81a14e4c7 host host local
008ae2f75ac2 none null local
[superman@docker ~] $
[superman@docker ~] $ docker network inspect 1aa209e7f1ec
[
{
"Name": "br1",
"Id": "1aa209e7f1ecfb2a31aff43199ac845b90030480b854dba1a3aa2a32cfda74a1",
"Created": "2024-06-24T11:22:13.046754701+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.16.1.0/24",
"Gateway": "172.16.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"20280f606803e2cd997e6723fd4b1db1fa86074b9d919995890c97154252d0ab": {
"Name": "superman002",
"EndpointID": "43ff4cf56a63c5f73045e195702dc9eeeef5de31501559700951146e3060332e",
"MacAddress": "02:42:ac:10:01:02",
"IPv4Address": "172.16.1.2/24",
"IPv6Address": ""
},
"a7479884a350b2ba36211d91a087f631640b068a2771ca766b9afda880113791": {
"Name": "superman001",
"EndpointID": "b2eb9591ef0ffa3a5e242f0a3f539c980e2b441e55654381bd8317dd8fca05e1",
"MacAddress": "02:42:ac:10:01:03",
"IPv4Address": "172.16.1.3/24",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
[superman@docker ~] $
基于主机名的访问(单独创建新的network可以⽀持docker容器主机名和IP地址解析)。
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/291614/viewspace-3048383/ ,如需转载,请注明出处,否则将追究法律责任。