前言
刚遇到这个问题时总认为是端口映射问题,各种查、各种搜;什么iptables设置啦,什么修改docker配置文件啦.......结果还是访问不了
后来突然想到了是不是主机开放的端口根本就访问不了(已经设置了防火墙开放了端口,所以之前就没往这儿想),于是使用Telnet测试了一下,binggo我猜对了,就是主机端口访问不了,原来自己忙活半天都是瞎忙活
-
telnet 测试:
打开windows控制面板,找到程序和功能
image.pngimage.png设置完成后,打开cmd输入:
telnet IP port
注意ip和端口之间是空格不是':'
解决办法
- Step1> 开放主机端口
- 开启防火墙
systemctl start firewalld
- 开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 重新加载防火墙
firewall-cmd --reload
- 查看开放的端口
firewall-cmd --zone=public --list-ports
- 设置开机启动
systemctl enable firewalld
- 有关防火墙的设置参照 CentOS7防火墙设置
- Step2> docker运行容器并映射端口
docker run -it -p 8080:80 --name newTest containerName
- Step3> 在阿里云服务器上添加新的规则
- 登录阿里云,进入控制台,找到主机,打开详情
image.png- 设置范围时使用’/‘,也可以只设置一个端口
image.png