从网络方向查找问题
docker容器内提供服务并监听8888端⼝,要使外部能够访问,需要做端⼝映射。
docker run -it --rm -p 8888:8888 server:v1
此时出现问题,在虚机A上部署后,在A内能够访问8888端⼝服务,但是在B却不能访问。这应该是由于请求被拦截。
⼀、查看firewall-cmd --state
如果输出的是“not running”则FirewallD没有在运⾏,且所有的防护策略都没有启动,那么可以排除防⽕墙阻断连接的情况了。如果输出的是“running”,表⽰当前FirewallD正在运⾏,需要再输⼊下⾯的命令查看现在开放了哪些端⼝和服务:
firewall-cmd --list-ports firewall-cmd --list-services
解决⽅案有两种:
- 关闭FirewallD服务
如果您不需要防⽕墙,那直接关掉FirewallD服务就好了
systemctl stop firewalld.service
- 添加策略对外打开指定的端⼝
⽐如我们现在要打开对外5000/tcp端⼝,可以使⽤下⾯的命令:
<