京东云Ubuntu实例安装Docker时如何避免常见网络问题?

在京东云 Ubuntu 实例上安装 Docker 时,网络问题通常源于镜像源不可达、安全组规则限制、Docker 默认配置与云环境不兼容等因素。以下是避免常见网络问题的关键步骤和最佳实践:


一、使用国内镜像提速源(解决拉取慢/超时)

默认 Docker Hub 在中国大陆访问不稳定,建议配置阿里云或腾讯云镜像提速器:

  1. 创建/编辑 daemon.json

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<EOF
    {
     "registry-mirrors": [
       "https://docker.m.daocloud.io",
       "https://huecker.io",
       "https://dockerhub.timeweb.cloud"
     ]
    }
    EOF

    注:docker.m.daocloud.io 为开源社区维护的公共提速地址;若需更高稳定性,可注册阿里云容器服务获取专属提速地址(阿里云镜像提速器)。

  2. 重启 Docker 服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker
  3. 验证提速是否生效

    docker info | grep "Registry Mirrors"

二、检查并配置安全组规则(防止端口被阻断)

京东云控制台的安全组需放行必要端口:

协议 端口范围 说明
TCP 2375–2376 Docker API(仅内网推荐,生产环境禁用网络访问)
TCP 80, 443 Web 服务常用端口
TCP 自定义 如部署 Nginx、Redis 等服务的端口

操作建议

  • 在【京东云控制台】→【弹性计算】→【安全组】中,添加入方向规则:
    • 来源:0.0.0.0/0(测试用)或 您的公网 IP/32(推荐)
    • 端口:按需开放(如 80, 8080
  • 严禁将 Docker API 端口(2375)对公网开放,否则极易被攻击。

三、启用 IPv4 转发(避免容器网络异常)

Ubuntu 默认可能未开启 IP 转发,导致容器无法通信:

# 临时启用
sudo sysctl -w net.ipv4.ip_forward=1

# 永久生效
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

⚠️ 若使用 overlay 网络模式(如 Swarm/K8s),还需确保 bridge 驱动正常且无冲突。


四、避免 DNS 解析失败(容器内无法联网)

若容器内 ping google.com 失败,可能是宿主机 DNS 配置问题:

  1. 检查宿主机 /etc/resolv.conf

    cat /etc/resolv.conf
    # 推荐设置:
    nameserver 223.5.5.5      # 阿里 DNS
    nameserver 119.29.29.29   # 腾讯 DNS
  2. Docker 启动参数指定 DNS(可选)
    修改 /etc/docker/daemon.json

    {
     "dns": ["223.5.5.5", "119.29.29.29"]
    }
  3. 测试容器网络

    docker run --rm alpine ping -c 3 www.baidu.com

五、其他注意事项

  • 使用官方 Docker CE 安装包(非 apt install docker.io
    推荐通过官方脚本安装,避免依赖冲突:

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • 关闭防火墙干扰(谨慎)
    若使用 ufw,需允许 Docker 流量:

    sudo ufw allow in on docker0
    sudo ufw reload
  • 监控日志排查
    遇到问题时查看:

    sudo journalctl -u docker -f
    sudo docker logs <container_id>

通过以上措施,可显著降低在京东云 Ubuntu 实例上运行 Docker 时的网络故障率。如遇特定错误(如 connection refusedno route to host),可提供具体报错信息进一步定位。