Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口

问题:Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口。但是在linux界面下用
curl localhost:81可以
但是 用
curl 42.12.314.342:81 就不可以
我这里写的ip 即42.12.314.342是随便写的不是我自己的哦。保密呵呵。这个地方用你自己的ip就好。这是测试连接的

首先把宿主机的80和81端口映射到nginx容器端口。
备注:宿主机和容器的端口映射关系是多对一。也就是说多个宿主机端口可以映射到同一个容器端口,但是不能多个容器端口对应一个宿主机端口
该命令是讲容器中的日志,静态页面放置地址,配置文件挂载到宿主机上。

docker run --name nginx -d -p 80:80 -p81:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/log:/var/log/nginx -v /usr/local/nginx/html:/usr/share/nginx/html nginx

容器中的文件位置如下

日志目录 : /var/log/nginx 
配置目录 : /etc/nginx/conf.d 
主配置文 :/etc/nginx/nginx.conf 
项目目录 : /usr/share/nginx/html nginx

挂载的文件位置要自己记得自己创建。或者copy过去。

解决办法:
1.看看宿主机的防火墙有没有放开端口
查看已放开的端口

firewall-cmd --list-ports

开放端口

firewall-cmd --zone=public --add-port=3338/tcp --permanent

重启防火墙

firewall-cmd --reload

开放端口后记得重启防火墙
还要去腾讯云的控制台建立防火墙规则。
备注:要用命令行放开端口,控制台的防火墙规则也要建
Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口_第1张图片

Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口_第2张图片
然后就可以用ip访问了。。嗯下图中是服务器默认方法的端口规则。不过你还是要去命令行用防火墙开一次。然后重启防火墙。
Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口_第3张图片
嗯。结束了。再给你们看看访问成功的界面吧。嘿嘿嘿
Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口_第4张图片
Docker 端口映射到宿主机后, 外网无法通过ip访问对应宿主机端口_第5张图片

你可能感兴趣的:(docker,docker)