APP下载

配置和管理Docker容器的网络连接

2019-12-22

网络安全和信息化 2019年1期
关键词:网段桥接网卡

Docker默认提供了一个隔离的内网环境,启动Docker后会建立名为Docker0的虚拟网卡,所有的容器都连接到该虚拟网卡上,该虚拟网卡的IP为172.17.0.0网段。

在宿主机上执行“ifconfig |more”命令,可以显示当前的网络配置信息,其中的“docker0”栏中显示所启动的虚拟机的IP信息,这和宿主机的IP并不在一个网段中。

“docker0”即虚拟网卡,其处于桥接模式,造成宿主机和虚拟机无法通讯。

虽然通过内置NAT地址转换,在启动Docker时将特定的端口映射到宿主机的对应端口上,但是使用内置的桥接模式,存在很多问题,例如在分配主机端口时比较困难容易冲突,每个容器暴露的端口都不一致,造成前端路由层Nginx配置中无法使用DNS的方式。

端口映射要在容器启动时就指定好,之后无法对其变更,而且NAT不支持WebSocket。

相比之下,利用自建桥接网络的方式,可以让每个容器都拥有独立的IP,便于对外界提供服务,即使每台容器都使用相同的端口,因为彼此的IP不同,所以不会发生冲突,可以很好的解决以上难题。

执 行“/etc/init.d/docker stop”命 令,停 止Docker服务。

执行“ifconfig docker0 down”命令,将Docker的桥接网络关闭。

执 行“brctl dclbr docker0”命令,删除Docker0桥接网络。

执 行“c d /e t c/s y s c o n f i g/n e t w o r kscripts/”命 令,进 入 目标 目 录,执 行“vi ifcfgeth0”命令,将其内容修改 为“DEVICE=eth0”,“B O O T P R O T O=n o n e”,“ O N B O O T=y e s”,“T Y P E=E t h e r n e t”,“BOOTPROTO=static”,“BRIDGE="br0"等内容,表示将“br0"桥接到“eth0”网卡上。

执行“vi ifcfg-br0”命令,创建名为“br0”的网卡,其内容为“DEVICE="br0"”,“O N B O O T=y e s”,“ N M_C O N T R O L L E D=n o”,“BOOTPROTO=static”,“ T Y P E=B r i d g e”,“IPADDR=192.168.1.97”,“NETMASK=255.255.255.0”,“GATEWAY=192.168.1.1”。

配置好所需的网卡后,执行“/etc/init.d/network restart”命令,来重启网络。

执行“ifconfig |more”命令,可以看到原来的“docker0”虚拟网卡消失,上面配置的“br0”桥接网卡出现了。

执 行“v i /e t c/sysconfig/docker”命 令,在其中添加“other_args="-b=br0"”一行,表示使用“br0”桥接网络。

执 行“/etc/init.d/docker restart”命令,重启Docker服务。

执 行“ps -ef | grep docker”命 令,可 以 查 看Docker的进程信息,其中显示上述桥接网卡信息。

执 行“docker images”命令,查看可用的镜像信息。例如执行“docker rund-I-t xxxxxx/centos/bin/bash -d”命令,在后台启动对应的容器,其中的“xxxxxx/centos”表示可用的镜像。

执行“docker ps”命令,可以查看当前运行的容器。

执 行“docker attah xxxxxxxxxxxxx”命令,进入指定的容器。

执行“ifconfig |more”命令,显示当前容器的IP和和宿主机处于同样的网段中。

执行PING命令,对宿主机进行探测,是可以连通的。因为宿主机连接在Internet,所以该在容器内是可以访问外网的。

例如,执行“yum install wget”命令,来安装Wget工具,之后利用该工具来下载所需的文件。

猜你喜欢

网段桥接网卡
商用车网络架构设计探讨
FPGA互连测试中的反馈桥接故障覆盖问题
“复兴号”17辆编组动车组列车总线网段扩展的设计研究
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
联网全靠它 认识笔记本的无线网卡
板栗嫁接不亲和挽救方法
用无线路由器共享单位局域网
利用桥接技术防治苹果树腐烂病
挑战Killer网卡Realtek网游专用Dragon网卡
USB故障又一原因