docker run 使用
-i 交互式的
-t 分配终端
-d 把容器放在后台运行
docker run -it centos cmd 启动一个交互式的容器,在前台运行
docker run -d centos cmd 启动一个非交互式的容器,在后台运行
docker run -itd centos cmd 启动一个交互式的容器,在后台运行
测试
docker run -it centos /bin/bash 成功
docker run -d centos /bin/bash 失败
docker run -itd centos /bin/bash 成功
docker run -it nginx nginx 失败
docker run -d nginx nginx 失败
docker run -itd nginx nginx 失败
docker run -it nginx nginx -g "daemon off;" 成功
docker run -d nginx nginx -g "daemon off;" 成功
docker run -itd nginx nginx -g "daemon off;" 成功
交互式的进程启动要使用 it , 非交互式的使用 d ,交互式的放后台使用 itd
启动 bash 的正确姿势 docker run -itd centos
启动 nginx 的正确姿势 docker run -d -p 80:80 nginx
设置 IP 伪装访问网络
[root@room9pc19 docker]# ifconfig
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.40.50.119 netmask 255.255.255.0 broadcast 172.40.50.255
ether 94:de:80:81:e3:53 txqueuelen 1000 (Ethernet)
RX packets 5947707 bytes 593709850 (566.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12611909 bytes 18788418441 (17.4 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
物理机上查找上网用的网卡
打开路由转发
sysctl -w net.ipv4.ip_forward=1
设置伪装上网
[root@room9pc19 docker]# iptables -t nat -I POSTROUTING -s 192.168.4.0/24 -o enp2s0 -j MASQUERADE
在虚拟机里面设置默认路由
ip route replace default via 192.168.4.254
模拟 docker 端口绑定转发
iptables -t nat -I PREROUTING -d 192.168.4.10 -p tcp --dport 8080 -i eth0 -j DNAT --to 172.17.0.3:80
docker run -d -p 8080:80 nginx
禁用系统防火墙,在物理机和虚拟机上都需要执行
systemctl stop firewalld
systemctl mask firewalld
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于