问题: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
开放端口后记得重启防火墙
还要去腾讯云的控制台建立防火墙规则。
备注:要用命令行放开端口,控制台的防火墙规则也要建
然后就可以用ip访问了。。嗯下图中是服务器默认方法的端口规则。不过你还是要去命令行用防火墙开一次。然后重启防火墙。
嗯。结束了。再给你们看看访问成功的界面吧。嘿嘿嘿