1.创建bridge网卡

docker network create -d bridge my-bridge
docker network ls  查看网卡
NETWORK ID          NAME                DRIVER              SCOPE
05feb2c84b41        bridge              bridge              local
bb8d749135e0        host                host                local
9bbbcb589833        my-bridge           bridge              local
24ec55aeb5a2        none                null                local

2.启动容器指定network

docker run -d --name test1 --network my-bridge busybox /bin/sh -c "while true; do sleep 3600; done"
docker network inspect 9bbbcb589833(my-bridge) 查看网卡下容器
"Containers": {
            "e1fe3cbc4b2455569a9a8882cabee650a2fafc245c5f133a59f1b44a7e85ce87": {
                "Name": "test1",
                "EndpointID": "ae6f16245fa34565992cdec8a8dd3060055156bf5c7f6b8e14d11e1040fa4d7c",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        }

3.启动一个默认容器

docker run -d --name test2 busybox /bin/sh -c "while true; do sleep 3600; done"
docker network inspect 9bbbcb589833(docker0) 查看网卡下容器

4.检查容器之间连通

docker exec test1 ping test2
可以发现无法ping

5.增加容器的网卡

docker network connect my-bridge test2
把test2连到my-bridge上
所以连通两台服务器
docker exec test1 ping test2

6.总结

默认docker0要使用--link才能用容器名ping通,但自定义的bridge网卡就自带--link功能,所以compose里就能直接使用容器名称进行连接
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐