Docker网络
Docker服务安装完成之后,默认在每个宿主机会生成一个名称为docker0的网卡其IP地址都是172.17.0.1/16,并且会生成三种不能=同类型的网络
[11:02:55 [email protected] ~]#ifconfig docker0 docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:fff:fef5:c936 prefixlen 64 scopeid 0x20<link> ether 02:42:0f:f5:c9:36 txqueuelen 0 (Ethernet) RX packets 46 bytes 6310 (6.3 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 66 bytes 8388 (8.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [11:02:58 [email protected] ~]#docker network list NETWORK ID NAME DRIVER SCOPE f8bd89ab9ee6 bridge bridge local 33b7b13498f4 harbor_harbor bridge local 1faa19297211 host host local 13d0417a04ab none null local
docker网络类型:
Docker的网络使用docker network ls 命令看到有三种类型。
[11:02:58 [email protected] ~]#docker network list NETWORK ID NAME DRIVER SCOPE f8bd89ab9ee6 bridge bridge local 33b7b13498f4 harbor_harbor bridge local 1faa19297211 host host local 13d0417a04ab none null local
Bridge:桥接,使用自定义IP
Host:不获取IP直接使用物理机IP,并监听物理机IP监听端口
None:没有网络
Bridge模式:使用参数 -net=bridge指定,不指定默认就是bridge模式。
Host模式:host模式,使用参数 -net=host指定。
- 启动的容器如果指定了使用host模式,那么新创建的容器不会创建自己的虚拟网卡,而是直接使用宿主机的网卡和IP地址,因此在容器里面查看到IP信息就是宿主机的信息,访问容器的时候直接使用宿主机IP+容器端口即可,不过容器的其他资源必须文件系统、系统进程等还是和宿主机保持隔离。
- 此模式的网路性能最高,但是各容器之间端口不能相同,适用于运行容器端口比较固定的业务。
- 为避免端口冲突,先删除所有的容器;
- Host模式不支持端口映射
none模式:使用参数 -net-none指定
在使用none模式后,Docker容器不会进行任何网络配置,其没有网卡,没有IP也没有路由,因此默认无法与外界通信,需要手动添加网卡配置IP等,所以极少使用。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279979.html