但这个并不是完全一样的
# 进入容器测试 [root@docker01 ~]# docker exec -it 993bdabc1f /bin/bash root@993bdabc1f68:/# root@993bdabc1f68:/usr/share/nginx# cd /usr/share/nginx/html/ root@993bdabc1f68:/usr/share/nginx/html# ls 50x.html index.html root@993bdabc1f68:/usr/share/nginx/html# echo 10.0.0.13 > index.html3)-p ip::containerPort(随机端口)
[root@docker01 ~]# docker run -d -p 10.0.0.23::80 nginx:latest 942d13e0e7b3746bdae8e9c6e0004ea599e3cf23207e27b01e1251dacad6b97c [root@docker01 ~]# docker ps -a -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 942d13e0e7b3 nginx:latest "nginx -g \'daemon of…" 21 seconds ago Up 20 seconds 10.0.0.23:4000->80/tcp silly_fermat4) -p hostPort:containerPort/udp [udp协议]
[root@docker01 ~]# iptables -t nat -L -n DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80 DNAT tcp -- 0.0.0.0/0 10.0.0.5 tcp dpt:8080 to:172.17.0.3:80 DNAT tcp -- 0.0.0.0/0 10.0.0.23 tcp dpt:8080 to:172.17.0.4:80 DNAT tcp -- 0.0.0.0/0 10.0.0.23 tcp dpt:4000 to:172.17.0.5:80 [root@docker01 ~]# docker run -d -p 10.0.0.23::80/udp nginx:latest 6e4f221506d4590debadd39413e2662c96afeecc6daf30150297a89e4be7e0ed [root@docker01 ~]# iptables -t nat -L -n DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80 DNAT tcp -- 0.0.0.0/0 10.0.0.5 tcp dpt:8080 to:172.17.0.3:80 DNAT tcp -- 0.0.0.0/0 10.0.0.23 tcp dpt:8080 to:172.17.0.4:80 DNAT tcp -- 0.0.0.0/0 10.0.0.23 tcp dpt:4000 to:172.17.0.5:80 DNAT udp -- 0.0.0.0/0 10.0.0.23 udp dpt:4000 to:172.17.0.6:805) -p 81:80 –p 443:443
6) docker run -P (随机端口)
7)多容器不同端口映射
访问 8080 端口,展示 xiaoniao
访问 8090 端口,展示游戏集合页面
修改文件什么的不需要进入容器 直接在外面改就行
2.卷挂载(第一次卷是空,会把容器的数据复制到卷中,如果卷里面有数据,把卷数据的反挂载到容器中)
[root@docker01 ~]# docker volume create inspect ls prune rm [root@docker01 ~]# docker volume ls [啥也没有] DRIVER VOLUME NAME # 创建一个叫xiaoniao的卷 [root@docker01 ~]# docker run -d -p 81:80 -v xiaoniao:/usr/share/nginx/html nginx:latest ee562aefdfcd503e70332b4677dc0728398e4e101b8f57b671bcf2498b1083e0 [root@docker01 ~]# docker volume ls DRIVER VOLUME NAME local xiaoniao