Docker容器網絡更改


6kGfRc

最近踩了一個坑,阿里雲通過雲企業網(騰訊雲叫雲聯網)專線網關接入騰訊雲,實現多雲內網互聯,本來這是個很普通的事情,騰雲側的IP段是172.16.19.9/20,阿里雲側網段是172.16.18.0/20,但是經測試雙向網絡無法互通,騰訊雲側在專線網關無法往下路由,阿里雲側壓根就沒跳出vpc網絡,tracetoute發現網絡在本地出不去了~最后排查發現是本地的Docker橋接網絡IP段是172.16.19.0/16,跟騰訊側的望斷沖突突突突突了~,SO~就需要考慮如何在不停止Docker容器的情況下修改網絡,觀靡了一下Docker的文檔,發現可以實現這個騷(普通)操作!過程如下:

1.更改網絡

###解除容器綁定的網絡 網絡名詞root_default 容器名稱root_redis_1
[root@ecs-test-01 ~]# docker network disconnect root_default root_redis_1
##刪除原先的網絡
[root@ecs-test-01 ~]# docker network rm root_default
##重新創建容器網絡
[root@ecs-test-01 ~]# docker network create --subnet=172.22.16.0/24 root_default
7d40e0be1fcade91f8109a54a05bf0f012584e0bbb9449bec5335db247efd0be
##為容器重新指定網絡
[root@ecs-test-01 ~]# docker network connect root_default root_redis_1
##重新啟動容器
[root@ecs-test-01 ~]# docker container restart root_redis_1

2.查看效果

# 查看容器信息
[root@ecs-test-01 ~]# docker inspect root_mysql_1

省略部分輸出,內容如下:

"NetworkSettings": {
            "Bridge": "",
            "SandboxID": "91dccf255b8aa18584aa40d7295cb0f19da8a770628ab918cbb5fa53f9d8cb18",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "3306/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "3306"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/91dccf255b8a",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "root_default": {
                    "IPAMConfig": {},
                    "Links": null,
                    "Aliases": [
                        "b0efc877eee7"
                    ],
                    "NetworkID": "99da51f11fb7c61e6638f9bd420ddd278e13e05b364b304413115f447c9ae582",
                    "EndpointID": "ba5d1d152d63f059c3ac61cdcf95e0c75ee2b826b2dd92fdb9c10a0a5fb6b246",
                    "Gateway": "172.22.16.1",
                    "IPAddress": "172.22.16.5",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:16:10:05",
                    "DriverOpts": {}
                }
            }
        }

再次測試雲聯網的網絡,發現網絡通了~搞定,打完收工!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM