天天看点

Docker部署在云上,浏览器访问超时

如下,访问ip地址,报错为:

Docker部署在云上,浏览器访问超时

云服务器上,测试请求端口也是不通的:

Docker部署在云上,浏览器访问超时

据运维的大佬说是容器运行在内网桥接模式下不可用,这个应该与网络有关,所以启动镜像时指定主机 映射到所有开放的端口,代码内指定程序运行的端口即可,-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

Docker部署在云上,浏览器访问超时

同样浏览器请求:

Docker部署在云上,浏览器访问超时

当然,以上注意 ,云服务防火墙端口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/