赞
踩
docker有四种网络模式
在运行容器时,添加以下参数.即可选择一种网络模式运行容器。
--net bridge | host | container | none
当docker进程启动时,会在主机上创建一个名为docker0的虚拟网卡,此主机上启动的Docker容器会连接到这个虚拟网卡上,从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网卡中。该模式是docker默认的网络模式。
bridge模式如下图所示:
bridge模式容器的网络端口映射:容器中的环境与宿主机隔离,那么此时容器内与外部进行网络通信就会有些问题,外部不能直接访问容器内的IP地址和端口。
docker 为我们提供了宿主机的端口与容器内的端口映射来解决此问题,方式有两种,一种是随机映射,一种是指定映射。
在运行容器时,添加以下参数:
演示:docker run --name tomcat1 -d --rm -P tomcat
演示:docker run --name tomcat2 -d --rm -p 8080:8080 tomcat
如果启动容器的时候使用host模式,那么容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
这个模式指定新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。
使用none模式,Docker容器不会进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。