Docker自定义网络

本文详细介绍Docker自定义网络的创建与应用,包括不同网络模式对比、自定义网络参数设置,以及通过实例演示容器间如何通过自定义网络实现通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker自定义网络


查看所有的docker网络

在这里插入图片描述

网络模式

bridge:桥接模式(默认,自己创建的网络也使用桥接模式)

none:不配置网络

host:和宿主机共享网络

container:容器网络连通(用的少,局限性很大)

测试

# 我们直接启动的命令 --net bridge,而这个就是我们的docker0
docker run -d -P --name tomcat05 --new bridge tomcat

# docker0的特点:默认的,域名是不能访问的,--link可以打通连接,但是不建议

# 我们可以自定义一个网络
# --driver bridge
# --subnet 192.168.0.0/16
# --gateway 192.168.0.1
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
fb0754cc713852ada340eae67970ef77acf8a7471c4faf0ef6de5ea01a9abd10
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
1c2a18e67a4a        bridge              bridge              local
04c9de8ad10f        host                host                local
fb0754cc7138        mynet               bridge              local
97cf7fc6ccad        none                null                local

我们自己的网络就创建完毕了
在这里插入图片描述

[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker run -d -P --name tomcat-net-01 --net mynet tomcat
3384863bc624bb4d8f009bbd71661ba3ad90453fb4797a80d415fbc06a203136
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker run -d -P --name tomcat-net-02 --net mynet tomcat
6857f3cb46c153a2bb109882ae0d69bb62aab112aae2e22ba7153f3783944886
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "fb0754cc713852ada340eae67970ef77acf8a7471c4faf0ef6de5ea01a9abd10",
        "Created": "2020-07-12T16:15:55.709415701+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "3384863bc624bb4d8f009bbd71661ba3ad90453fb4797a80d415fbc06a203136": {
                "Name": "tomcat-net-01",
                "EndpointID": "26e1dd88b0246801d076903264130005a78e60452bd4a7d22a640eb50ac6d293",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "6857f3cb46c153a2bb109882ae0d69bb62aab112aae2e22ba7153f3783944886": {
                "Name": "tomcat-net-02",
                "EndpointID": "bc86474bcce0275821b09212fd7600808a478ad14eb9953727be167bd94497c9",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

# 再次测试ping连接
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker exec -it tomcat-net-01 ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.109 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.096 ms
64 bytes from 192.168.0.3: icmp_seq=4 ttl=64 time=0.103 ms
64 bytes from 192.168.0.3: icmp_seq=5 ttl=64 time=0.086 ms
^C
--- 192.168.0.3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.080/0.094/0.109/0.016 ms

# 现在不使用--link也可以ping容器名字了
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker exec -it tomcat-net-01 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.082 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.091 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=4 ttl=64 time=0.081 ms
^C
--- tomcat-net-02 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.061/0.078/0.091/0.015 ms

我们自定义的网络docker都已经帮我们维护好了对应的关系,推荐我们平时这样使用网络

好处:不同的集群使用不同的网络,保证我们的集群使用是安全和健康的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值