docker-网络模式

Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。 None:该模式关闭了容器的网络功能。 Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信     让外部网络访问容器中web服务 思路:首先使用centos镜像新建一个容器,然后在该容器中安装web服务,并启动再把该容器导成一个新的镜像(centos-httpd),然后再使用新镜像(centos-httpd)创建新的容器,并指定端口映射供外部访问。   1:新建容器指定名称httpd,并在容器安装web服务(Nginx) [root@host1 ~]# docker run -itd --name nginx centos bash 910043992a8e734debe42a04e5d21e6a595a1c7dea2a6550c66128a02cd1dea1   进入容器安装web服务 [root@host1 ~]# docker exec -it 910043 bash [root@910043992a8e /]# yum -y install epel-release [root@910043992a8e /]# yum -y install nginx   2:web服务安装完成后,将已安装web服务的httpd容器导出新的镜像为centos_httpd [root@host1 ~]# docker commit -m "install nginx" -a "test" 910043992a8e centos_httpd sha256:b2a4963d29cfd6c2a1d44f23af0a08395f1d210872e37fc49c1d7f7a57d66e79 [root@host1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos_httpd latest b2a4963d29cf 9 seconds ago 412MB centos latest 1e1148e4cc2c 9 months ago 202MB   3:使用centos_httpd镜像新建一个容器,并指定8088端口映射为容器中的80端口新建容器启动 语法:docker run -itd --privileged -e "container=docker" -p 【宿主机端口】:【容器端口】 【镜像名】 /usr/sbin/init 说明:-p后面格式是IP:port:IP:port,或者127:0.0.1::port,这里两个冒号,表示随机分配主机一个端口映射;如果nginx启动报错误Failed to get D-Bus connection: Operation not permitted,因为dbus-daemon没有启动导致,解决方法:新建容器时加上--privileged -e "container=docker" ,并且最后面的命令改为/usr/sbin/init。 [root@host1 ~]# docker run -itd --privileged -e "container=docker" -p 8088:80 centos_httpd /usr/sbin/init 3bbdb44c307851f2fdf5d3927dbfc4f2f3a78dc69357687b492d416317b3cecb [root@host1 ~]# docker exec -it 3bbdb44 bash [root@3bbdb44c3078 /]# systemctl start nginx [root@3bbdb44c3078 /]# echo "Hell Word" > /usr/share/nginx/html/1.txt   4:退出容器后,用curl命令测试本机8088端口是否可以访问容器的80端口内容 [root@host1 ~]# curl localhost:8088/1.txt Hell Word
上一篇:Docker系列14:容器编排(2)


下一篇:hdfs 配置多个namenode