docker 网络配置详解:
1、Docker原生网络实现
为了实现容器到容器和容器到宿主机之间的通信,Docker本身就已经提供了几种解决方案。当Docker进程启动之后,它会配置一个虚拟的网桥叫docker0在宿主机上,实际上是 Linux 的一个 bridge。这个接口允许Docker去分配虚拟的子网给即将启动的容器们。这个网桥在容器内的网络和宿主机网络之间将作为接口的主节点。
Docker容器启动后,将创建一个新的虚拟接口并分配一个网桥子网内的IP地址。这个IP地址嵌在容器内网络中,用于提供容器网络到宿主机docker0网桥上的一个通道。Docker自动配置iptables规则来放行并配置NAT,连通宿主机上的docker0。
同时,Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0 接口。比如典型的 172.17.42.1,掩码为 255.255.0.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。
在宿主机上使用如下命:ip addr
lin@ubuntu:~$ ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaultlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:33:ca:0f brd ff:ff:ff:ff:ff:ffinet 192.168.0.167/24 brd 192.168.0.255 scope global eno16777736valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe33:ca0f/64 scope linkvalid_lft forever preferred_lft forever3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:86:27:36:61 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 scope global docker0&

本文详细介绍了Docker的网络配置,包括Docker原生网络实现、四种网络模式(bridge、none、host、container)的工作原理,以及如何自定义网桥。通过实例展示了如何创建自定义网桥、删除默认网桥、分配IP以及配置容器连接到特定网桥。最后,通过测试验证了网络联通性。
最低0.47元/天 解锁文章
6141

被折叠的 条评论
为什么被折叠?



