【踩坑】docker无法访问容器
【踩坑】docker无法访问容器
ubuntu22.04 docker拉取镜像跑服务后,无法访问容器
排查流程:
- 防火墙已开放端口
- 进入容器,curl 80端口返回网页内容
- 主机里,访问对应端口没有响应
描述
docker run -d -p 8081:80 f26d9
docker拉镜像运行时,8081端口访问不到
docker没有报错,容器正常运行
解决
查看iptables规则
sudo iptables -L -n -v
从iptables的输出来看,默认的FORWARD链策略是DROP,转发流量默认丢弃,导致无法访问容器。为了确保Docker的网络流量正常转发,可以添加规则来允许转发流量
sudo iptables -P FORWARD ACCEPT
sudo systemctl restart docker
sudo iptables -L -n -v
检查
sudo iptables -L -n -v
出现下面就成功了
ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.3 tcp dpt:80