基本就三个情况
一,
容器启动失败,使用docker ps -a查看所有容器(包括停止的),输入docker logs 容器id。可以直接查看容器启动失败的报错日志
没有进行端口映射。如果不进行端口映射,Docker容器内部的服务将无法通过主机的网络访问到。这意味着,虽然容器内的服务可能在其默认端口(比如80端口)上运行,但是它们将无法被主机外部的其他设备或服务所访问到。下面是正常运行的端口号。
.0.0.0:9000
表示容器的主机端口,即Docker宿主机上监听的端口号为9000。->
是指向的符号,表示端口映射关系。80/tcp
表示容器内部的端口,即Docker容器内监听的端口号为80,使用的协议是TCP
二,
服务器防火墙配置,在外部想要访问到我们的服务器,必须向外部暴露我们的端口。下面拿80端口举例:
开放端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
查看已开启的端口信息 firewall-cmd --list-ports
中间的提示可以忽略,因为有些端口的域是docker内的,不会影响。看到下面有80/tcp说明开发端口成功
其他指令~
查看防火墙状态,running代表正在运行:firewall-cmd --state
停止命令systemctl stop firewalld.service
启动命令systemctl start firewalld.service
三,
服务器安全配置问题,因为我用的是阿里云服务器。这里拿阿里云服务器举例。登录阿里云云服务器ECS控制台。
点击实例
配置端口
根据自己项目的端口号手动添加