Docker网络高级实战:隔离网络、检查路由表和自定义网络驱动
libnetworklibnetwork 实现了CNM 的Docker网络组件库。libnetwork内置了几种网络驱动bridge驱动。此驱动为Docker的默认设置使用这个驱动的时候libnetwork将创建出来的docker容器连接到Docker网桥上。作为最常规的模式bridge模式已经可以满足docker容器最基本的使用需求了。host驱动。使用这种驱动的时候libnetwork将不为docker容器创建网络协议栈即不会创建独立的network namespace。Docker容器中的进程处于宿主机的网络环境中相当于docker容器与宿主机共同使用一个network namespace使用宿主机的网卡、IP和端口等信息。但是容器的其他方面如文件系统、进程列表等还是和宿主机隔离的。集群的时候使用。overlay驱动。通过网络虚拟化技术在同一个物理网络上构建出一张或多张虚拟的逻辑网络。适合大规模的云计算虚拟化环境。remote 驱动。这个驱动实际上并没有做真正的网络服务实现而是调用了用户自行实现的网络驱动插件使libnetwork实现了驱动的可插件化更好的满足了用户的多种需求。用户只要根据libnetwork提供的协议标准实现其所要求的各个接口并向Docker daemon进行注册。null 驱动。使用这种驱动的时候Docker容器拥有自己的network namespace但是并不为Docker容器进行任何网络配置。也就是说这个Docker容器除了network namespace 自带的loopback网卡外没有其他任何网卡、ip、路由等信息需要用户为Docker容器添加网卡、配置IP等。这种模式如果不进行特定的配置是无法正常使用的但优点也非常明显它给了用户最大的自由度来定义容器的网络环境。二、实操2.1、docker network常用命令展开代码语言Bash自动换行AI代码解释# 连接一个容器到一个网络 docker network connect #Connect a container to a network # 创建一个网络 docker network create #Create a network # 将容器从一个网络中断开 docker network disconnect #Disconnect a container from a network # 查看网络的详细信息 docker network inspect #Display detailed information on one or more networks # 查看网络列表 docker network ls #List networks # 移除所有为使用的网络 docker network prune #Remove all unused networks # 移除一个或多个网络 docker network rm #Remove one or more networks1创建网络时可以指定子网IP地址、网关、IP范围等信息IP地址斜杆后面的数字表示固定了前面IP的多少位不能改变。一个IP地址是32bit的代码语言Bash自动换行AI代码解释docker network create --subnet172.11.0.1/16 --gateway172.11.11.11 --ip-range172.11.1.2/24 mynet2启动容器时绑定网络注意–network要在容器名的前面。代码语言Bash自动换行AI代码解释docker run -d --network brigh nginx2.2、运行一个docker容器查看CNM三个概念代码语言Bash自动换行AI代码解释# 运行一个容器 docker run -d -it --name myubuntu ubuntu /bin/bash # 查看容器详信息 docker inspect myubuntu2.3、查看docker0在内核路由表上的记录展开代码语言Bash自动换行AI代码解释$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.8.1 0.0.0.0 UG 100 0 0 ens33 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.0.0 0.0.0.0 255.255.240.0 U 0 0 0 ens33 192.168.8.1 0.0.0.0 255.255.255.255 UH 100 0 0 ens33通过以上命令可以找到一条静态路由该路由表示所有目的IP地址为172.17.0.0/16的数据包都从docker0网卡发出。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2416738.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!