ITPub博客

首页 > 云计算 > Docker/K8 > 13 Docker容器单机网络架构全攻略:使用自定义桥接的**实践与探索**

13 Docker容器单机网络架构全攻略:使用自定义桥接的**实践与探索**

原创 Docker/K8 作者:shuchaoyang 时间:2024-11-11 20:35:08 0 删除 编辑

13 Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索 五 使用自定义docker桥接网络 5.1 重新创建新的容器 5.2 重新创建新的容器,并且指定网络 5.3 docker网桥切换

13 Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索

五 使用自定义docker桥接网络

5.1 重新创建新的容器

[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 ~] $

5.2 重新创建新的容器,并且指定网络

[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之间,默认网络隔离。

5.3 docker网桥切换

[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地址解析)。

原文链接: https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247492212&idx=1&sn=7339a7af7e9a262dfa3b68e16bec7f64&chksm=c141f4bef6367da808ed37aaf350e3e9c7864013e5430aa090ba78df2c49d8e0486faea01055&token=1641304794&lang=zh_CN#rd

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

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

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303429