在京东云 Ubuntu 实例上安装 Docker 时,网络问题通常源于镜像源不可达、安全组规则限制、Docker 默认配置与云环境不兼容等因素。以下是避免常见网络问题的关键步骤和最佳实践:
一、使用国内镜像提速源(解决拉取慢/超时)
默认 Docker Hub 在中国大陆访问不稳定,建议配置阿里云或腾讯云镜像提速器:
-
创建/编辑 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为开源社区维护的公共提速地址;若需更高稳定性,可注册阿里云容器服务获取专属提速地址(阿里云镜像提速器)。 -
重启 Docker 服务
sudo systemctl daemon-reload sudo systemctl restart docker -
验证提速是否生效
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 配置问题:
-
检查宿主机
/etc/resolv.confcat /etc/resolv.conf # 推荐设置: nameserver 223.5.5.5 # 阿里 DNS nameserver 119.29.29.29 # 腾讯 DNS -
Docker 启动参数指定 DNS(可选)
修改/etc/docker/daemon.json:{ "dns": ["223.5.5.5", "119.29.29.29"] } -
测试容器网络
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 refused、no route to host),可提供具体报错信息进一步定位。
CLOUD技术笔记