Docker容器内访问外网

今天需要在一个docker镜像容器内访问外网,发现ping不通无法访问,这里记录下解决过程。

1、查看宿主机防火墙NAT转发情况

# 退出容器,宿主机查看防火墙转发配置
firewall-cmd --query-masquerade     
    no  # 没有配置转发

2、配置并开启NAT转发

# 配置转发
vi /etc/sysctl.conf
    net.ipv4.ip_forward = 1

# 开启转发
firewall-cmd --add-masquerade --permanent
# 重新加载运行的配置
firewall-cmd --reload

# 查看配置是否生效
firewall-cmd --query-masquerade
    yes  # 配置已生效

3、重启docker和容器

systemctl restart docker
docker start cyber

4、验证外网访问

docker exec -it cyber /bin/bash

curl www.baidu.com
    <!DOCTYPE html> ...  # 访问成功 

 

yan 23.5.24

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。