【踩坑】docker无法访问容器

发布于: 2024-08-08 07:02

【踩坑】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