Docker 修改网桥网段
场景:
服务器: centos7
在Docker上部署了 ExceptionLess 自动创建了网桥:excepitonless_default,默认占用了 172.19.0.0 网段
在华为云上的应用 访问 此服务器时,数据返回不到华为云上了。
由于华为云上的地址也是172.19.0.0网段上的。
所以返回数据时,直接找到docer 上去了。
解决方式:
修改 docer 上的 excepitonless_default 网桥网段,改成 172.30.0.0
操作:
1. 查看所有网桥
docker network ls
2. 查看网桥地址
ifconfig br-65fbae86767e
3. 查看网桥使用的具体信息
docker network inspect 65fbae86767e
内容如下,里面可看到具体的容器ID

[root@mestest ~]# docker network inspect 64c2fc45bd6e [ { "Name": "exceptionless_default", "Id": "64c2fc45bd6ee618f1ceebe6ad5c5915ccde5ad1939e166fa135a2b2252abe72", "Created": "2019-09-26T14:25:29.227480992+08:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.19.0.0/16", "Gateway": "172.19.0.1" } ] }, "Internal": false, "Attachable": true, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "417785d3375b4c65ae19d28c1d6f0f050379790d66e337bb651e326de0815c3d": { "Name": "exceptionless_redis_1", "EndpointID": "e11117cab07e4cdbc5c5d710bc1685190f4fde26ab8a4a56faf7b20bbe655495", "MacAddress": "02:42:ac:13:00:02", "IPv4Address": "172.19.0.2/16", "IPv6Address": "" }, "5d59901efdd32c3056676ee136601716696f14b89246f09fb38f8ec2787506c1": { "Name": "exceptionless_jobs_1", "EndpointID": "40988b4be56aad244340044607449748eb9e766e4a66d2bdaea4ea4b2bfa1c0d", "MacAddress": "02:42:ac:13:00:06", "IPv4Address": "172.19.0.6/16", "IPv6Address": "" }, "6fb7b3d8e2c0e4c3481d79ce2fe2ebfbaa25700f99a4ac773dd618e18bcc899c": { "Name": "exceptionless_ui_1", "EndpointID": "6c5a1be453356f7f134036646996db350506c251cad67cccdd16fa28a7e59466", "MacAddress": "02:42:ac:13:00:03", "IPv4Address": "172.19.0.3/16", "IPv6Address": "" }, "7cc890a58bbde8c8a11a2847d9d2eb607b3b0cdada50dc7af657fa07bf2833bb": { "Name": "exceptionless_api_1", "EndpointID": "a2641c9a5bc3f2509b04dfe69c79708bbc916872bdc547048848b22d3990883d", "MacAddress": "02:42:ac:13:00:07", "IPv4Address": "172.19.0.7/16", "IPv6Address": "" }, "e8f988bf7bdffb0b20ad687ba99a0cd131a18eb17e290d701d1efb115fa81508": { "Name": "exceptionless_elasticsearch_1", "EndpointID": "91e8ac8e03d8edc227c4cac17d51b7f8a43e4b43b042ed96b1cda9e0f04cd92a", "MacAddress": "02:42:ac:13:00:04", "IPv4Address": "172.19.0.4/16", "IPv6Address": "" }, "eebd379c82f33c1f73e6da287e2718874bfd2c12d1e21dc576752d85cf099e01": { "Name": "exceptionless_kibana_1", "EndpointID": "58785c16561d111826d4c71066f32b7a87cc1cb6b3c0118b3dcd7c27dc11d817", "MacAddress": "02:42:ac:13:00:05", "IPv4Address": "172.19.0.5/16", "IPv6Address": "" } }, "Options": {}, "Labels": { "com.docker.compose.network": "default", "com.docker.compose.project": "exceptionless", "com.docker.compose.version": "1.25.0-rc2" } } ]
4. 停止步骤3中的所有容器
[root@mestest ~]# docker stop 5d59901
5d59901
[root@mestest ~]# docker stop eebd379
eebd379
[root@mestest ~]# docker stop 7cc890
7cc890
[root@mestest ~]# docker stop 6fb7b3d
6fb7b3d
[root@mestest ~]# docker stop e8f988
e8f988
[root@mestest ~]# docker stop 417785
5. 删除网桥
[root@mestest ~]# docker network rm exceptionless_default
6. 创建新的网桥
创建网桥(同名)并指定网段为 172.30.0.0
[root@mestest ~]# docker network create exceptionless_default --subnet=172.30.0.0/16
7.启动容器
docker start 5df5990
此时发现报错,由于原网桥ID变了。
8. 给容器重新指定网桥
docker network connect exceptionless_default 5df5990
启动容器。
其他 容器也是一样。
完成!
9. 再次查看
docker network inspect e045
网络地址全部更新了,变更为172.30.0.0网段

[root@mestest ~]# docker network inspect e045 [ { "Name": "exceptionless_default", "Id": "e0453839f185e0af3c51d76814f33ca738476f0dfc5ffc6aa0b67984da33216d", "Created": "2020-06-29T14:49:47.262522248+08:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.30.0.0/16" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "417785d3375b4c65ae19d28c1d6f0f050379790d66e337bb651e326de0815c3d": { "Name": "exceptionless_redis_1", "EndpointID": "c601406e9305d948b8b2cc4d54c9dd803ff72b4cda71385711d21b63bd618bcb", "MacAddress": "02:42:ac:1e:00:07", "IPv4Address": "172.30.0.7/16", "IPv6Address": "" }, "5d59901efdd32c3056676ee136601716696f14b89246f09fb38f8ec2787506c1": { "Name": "exceptionless_jobs_1", "EndpointID": "2071081cfed2976df25bd6c370b77728c8c94067f5ce948898171ddd789351f5", "MacAddress": "02:42:ac:1e:00:02", "IPv4Address": "172.30.0.2/16", "IPv6Address": "" }, "6fb7b3d8e2c0e4c3481d79ce2fe2ebfbaa25700f99a4ac773dd618e18bcc899c": { "Name": "exceptionless_ui_1", "EndpointID": "03cc9c36ddb6e3b2d01ee4ead37cecfa5bf6fb9e6af8d786f59c8cf2aca7480b", "MacAddress": "02:42:ac:1e:00:05", "IPv4Address": "172.30.0.5/16", "IPv6Address": "" }, "7cc890a58bbde8c8a11a2847d9d2eb607b3b0cdada50dc7af657fa07bf2833bb": { "Name": "exceptionless_api_1", "EndpointID": "077545729bc30c5bc46ef3dfc3b7eb4cbde5f057993118680839c6c6f6f93698", "MacAddress": "02:42:ac:1e:00:04", "IPv4Address": "172.30.0.4/16", "IPv6Address": "" }, "e8f988bf7bdffb0b20ad687ba99a0cd131a18eb17e290d701d1efb115fa81508": { "Name": "exceptionless_elasticsearch_1", "EndpointID": "a279b6162816960ec1ce1f5e13bb9f2dbb79853826a11a3e60fc05bd61c6fa90", "MacAddress": "02:42:ac:1e:00:06", "IPv4Address": "172.30.0.6/16", "IPv6Address": "" }, "eebd379c82f33c1f73e6da287e2718874bfd2c12d1e21dc576752d85cf099e01": { "Name": "exceptionless_kibana_1", "EndpointID": "1ef25857fed2d9f33efac25743bfe4a3d1b8d1aa20d6ddf6ef18ee9531b418d2", "MacAddress": "02:42:ac:1e:00:03", "IPv4Address": "172.30.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
备注:
如直接 connect 无效,可考虑先disconnect已经删除了的网络,再connect新建的网络。
1 docker network create -d transparent my-transparent-network2 2 docker stop mysqltest #需要停止容器后在对network进行操作。 3 docker network disconnect my-transparent-network-1 mysqltest 4 docker network connect my-transparent-network mysqltest
参考:https://www.cnblogs.com/flyelephant/p/docker-windows-container-network-not-found.html