Docker网络管理

    技术2025-09-15  48

    网络模式:

    bridge –net=bridge默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加这个网桥中。

    host –net=host容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主机的.容器除了网络,其他都是膈离的。

    none –net=none获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。

    container –net=container:Name/ID与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的。

    自定义网络 与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信。 eg: container mode

    [root@docker ~]# docker run -itd -p 90:80 --name bs busybox [root@docker ~]# docker run -d --net container:bs --name nginx01 nginx [root@docker ~]# docker container inspect bs [root@docker ~]# curl 172.17.0.2 Welcome to nginx!

    eg: 自定义网络 [root@docker ~]# docker network create test [root@docker ~]# docker run -itd --name bs5 --net test busybox [root@docker ~]# docker run -itd --name bs6 --net test busybox [root@docker ~]# docker exec -it bs5 sh / # / # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:12:00:02 inet addr:172.18.0.2 Bcast:172.18.255.255 Mask:255.255.0.0

    [root@docker ~]# docker exec -it bs6 sh / # / # / # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:12:00:03 inet addr:172.18.0.3 Bcast:172.18.255.255 Mask:255.255.0.0

    / # ping 172.18.0.2 PING 172.18.0.2 (172.18.0.2): 56 data bytes 64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.296 ms 64 bytes from 172.18.0.2: seq=1 ttl=64 time=0.178 ms / # hostname f15981bb47ff

    / # ping f15981bb47ff PING f15981bb47ff (172.18.0.3): 56 data bytes 64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.078 ms 64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.471 ms / # ping bs6 PING bs6 (172.18.0.3): 56 data bytes 64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.146 ms 64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.215 ms

    Processed: 0.020, SQL: 9