目录
三、数据卷容器(多个容器通过同一个数据卷容器为基点,实现所有容器数据共享)
一、端口映射(相当于添加iptables的DANT)
在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务的。
端口映射机制将容器内的服务提供给外部网络访问,实际上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可以访问容器内的服务。
两种方式
[root@localhost ~]#docker run -d --name test01 -P nginx:test
###随机映射端口 (从32768开始)
[root@localhost ~]#docker run -d --name test02 -p 1314:80 nginx:test
##指定映射端口
原理:实际上就是创建了一条iptables规则DNAT规则
拓展:如何针对已经自定义的端口号,修改为新的端口号
方式一:将当前容器打包成镜像,重新指定映射端口,创建新的容器
就是类似于容器迁移 先快照保存,然后在本地导入,再重新docker run 去指定映射端口,但是容器的ip会变化,除非把原有的容器删除,然后再通过自定义网络模式去指定相同的ip
方式二:直接在原容器上进行修改
先关闭容器,然后查看容器的Id,然后进去docker管理容器的目录,修改hostconfig.json和config.v2.json文件;然后重启docker,重启容器。这种方式,一旦重启docker会让所有的容器停止。
##停止容器
[root@localhost opt]#docker stop test01
test01
##查看容器的id
[root@localhost opt]#docker inspect test01 |grep Id
"Id": "0a242c04664bb5242624b5d40defa2e1b3936e510b5d60ea043bf880f659e31e