如下,访问ip地址,报错为:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB5kenRVTyUERPpHOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3ATMyMDOxUTM0IjNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
云服务器上,测试请求端口也是不通的:
据运维的大佬说是容器运行在内网桥接模式下不可用,这个应该与网络有关,所以启动镜像时指定主机 映射到所有开放的端口,代码内指定程序运行的端口即可,-itd --network 参数意为:将容器连接到网络, 如下命令,连接指定到主机
docker run -itd --network host aaa bash
所以,重新发布并build镜像,代码内指定端口8002,运行命令
docker build -t aaa .
docker run -itd --network host aaa bash
再次测试请求
curl 127.0.0.1:8002
同样浏览器请求:
当然,以上注意 ,云服务防火墙端口8001与8002均要开放,同时安全组中端口规则也要开放。
附上防火墙端口的基本命令:
firewall-cmd --list-ports //查看开放的端口
firewall-cmd --zone=public --add-port=8001/tcp --permanent //打开单个端口
firewall-cmd --zone=public --add-port=8001-8100/tcp --permanent //打开多个端口
systemctl start firewalld.service //开启防火墙
iptables -L -n --line-number //显示规则和相对应的编号
另附上docker官方文档地址:https://docs.docker.com/engine/reference/commandline/run/