docker--网络和特权模式
Posted zouzou-busy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker--网络和特权模式相关的知识,希望对你有一定的参考价值。
前戏
查看网络模式:
docker network ls
默认的三种网络模式:
- bridge:桥接模式
- host:主机模式
- none:无网络模式
bridge桥接模式
桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥
当我们启动一个容器时,会桥接到docker0网卡上,在通过Nat技术就实现了外网访问docker容
docker0 是启动docker服务时分配的网桥,77和83是启动一个容器时分配的网桥(bridge模式时才会有)
host模式
host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口
host模式是使用的宿主机的ip和端口,不会生成一个网卡桥接到docker0模式。
拉取nginx镜像
docker pull nginx
启动nginx容器,--net=host 指明网络模式为host,如果不指明,默认为bridge
docker run -d --net=host nginx
防火墙放开80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
启动容器时没有指定端口号,我们直接访问宿主机的80端口是可以访问到nginx的
host的缺点就是只能启动一个相同的服务,比如nginx镜像的端口都是80,你在宿主机上启动一个就占用了宿主机的80端口,在启动一个nginx就会报错
none模式
none模式:关闭模式
无法连外网
比较少用,了解有这种网络模式即可
特权模式
也比较少用,了解即可
启动一个普通的容器
docker run -itd --name mycentos centos:7 /bin/bash
安装网络工具:
yum -y install net-tools
执行route -n 查看网关
删除网关
route del default gw 172.17.0.1
这样会提示权限
启动拥有特权模式的容器:只需要在启动容器的时候加上--privileged=true就可以了
docker run -itd --privileged=true --name mycentos1 centos:7 /bin/bash
以上是关于docker--网络和特权模式的主要内容,如果未能解决你的问题,请参考以下文章