【踩坑】docker无法访问容器

# 【踩坑】docker无法访问容器

ubuntu22.04 docker拉取镜像跑服务后,无法访问容器

排查流程:

  • 防火墙已开放端口
  • 进入容器,curl 80端口返回网页内容
  • 主机里,访问对应端口没有响应

# 描述

docker run -d -p 8081:80 f26d9
1

docker拉镜像运行时,8081端口访问不到

docker没有报错,容器正常运行

# 解决

查看iptables规则

sudo iptables -L -n -v
1

从iptables的输出来看,默认的FORWARD链策略是DROP,转发流量默认丢弃,导致无法访问容器。为了确保Docker的网络流量正常转发,可以添加规则来允许转发流量

sudo iptables -P FORWARD ACCEPT
sudo systemctl restart docker
sudo iptables -L -n -v
1
2
3

检查

sudo iptables -L -n -v
1

出现下面就成功了

ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.17.0.3           tcp dpt:80
1
最后一次更新于: 2024/09/07, 22:30:21