在京东云(JD Cloud)服务器(通常为 CentOS/Alibaba Cloud Linux/Ubuntu 等 Linux 发行版)上安装 Docker 时,常见错误及对应解决方法如下(已结合京东云实际环境验证,涵盖网络、权限、内核、仓库配置等典型问题):
✅ 一、前置检查(避免多数错误)
# 1. 确认系统兼容性(Docker 官方支持:CentOS 7.6+/8.x, Ubuntu 20.04+/22.04, Alibaba Cloud Linux 3)
uname -r # 内核需 ≥ 3.10(推荐 ≥ 4.18,尤其使用 overlay2 存储驱动)
cat /etc/os-release
# 2. 关闭 SELinux(CentOS/Alibaba Cloud Linux)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 3. 确保系统已更新
sudo yum update -y # CentOS/Alibaba Cloud Linux
# 或
sudo apt update && sudo apt upgrade -y # Ubuntu
⚠️ 常见错误及解决方案
❌ 错误1:curl: (7) Failed to connect to get.docker.com port 443
原因:京东云默认安全组/防火墙未放行 HTTPS(443),或国内网络访问 get.docker.com 不稳定(DNS污染/HTTPS拦截)。
✅ 解决方案:
-
✅ 推荐方式:使用国内镜像源安装
# 方式1:使用阿里云镜像(稳定可靠,京东云同属国内云厂商,延迟低) curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # 方式2:使用清华大学镜像(备用) # curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo # 安装(以 CentOS 7/8 为例) sudo yum makecache sudo yum install -y docker-ce docker-ce-cli containerd.io -
✅ 若必须用官方脚本(不推荐):
# 临时设置X_X(仅限有出口X_X的场景,生产环境慎用) export https_proxy=http://your-proxy:port curl -fsSL https://get.docker.com | sh unset https_proxy
❌ 错误2:Error: Package: docker-ce-xxx requires container-selinux >= 2:2.95
原因:CentOS 7 上缺少 container-selinux 依赖(尤其在禁用 SELinux 后仍需该包)。
✅ 解决方案:
# 手动安装 container-selinux(适配 CentOS 7)
sudo yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
# 或使用阿里云镜像提速:
sudo yum install -y https://mirrors.aliyun.com/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
💡 注意:CentOS 8+ 和 Alibaba Cloud Linux 3 已内置
container-selinux,无需手动安装。
❌ 错误3:启动失败 — Failed to start docker.service: Unit not found 或 Job for docker.service failed
原因:
- Docker 服务未启用(新安装后需手动启动)
containerd未安装或版本冲突/var/lib/docker目录被占用或权限异常
✅ 解决方案:# 1. 确保 containerd 已安装(Docker CE 20.10+ 强依赖) sudo yum install -y containerd.io # CentOS # 或 sudo apt install -y containerd.io # Ubuntu
2. 生成默认 containerd 配置(关键!)
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
修改 cgroup 驱动(适配 systemd)
sudo sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/’ /etc/containerd/config.toml
3. 重启 containerd & docker
sudo systemctl daemon-reload
sudo systemctl enable containerd
sudo systemctl restart containerd
sudo systemctl enable docker
sudo systemctl start docker
4. 验证
sudo docker info | grep "Cgroup Driver"
应输出:Cgroup Driver: systemd(非 cgroupfs)
---
#### ❌ 错误4:`docker: command not found`(即使安装成功)
**原因**:Docker CLI 二进制路径未加入 `$PATH`(极少见),或用户未重新登录(`systemctl --user` 场景)。
**✅ 解决方案**:
```bash
# 检查安装路径
ls /usr/bin/docker /usr/bin/dockerd
# 临时修复(当前会话)
export PATH=/usr/bin:$PATH
# 永久修复(写入 profile)
echo 'export PATH=/usr/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
❌ 错误5:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:
- Docker 服务未运行(
systemctl status docker显示 inactive) - 当前用户无
docker组权限(普通用户执行docker ps报错)
✅ 解决方案:# 启动并设为开机自启 sudo systemctl start docker sudo systemctl enable docker
将当前用户加入 docker 组(避免每次加 sudo)
sudo usermod -aG docker $USER
⚠️ 重要:退出终端重登,或执行:
newgrp docker # 刷新组权限(当前会话生效)
验证(无需 sudo)
docker run –rm hello-world
---
#### ❌ 错误6:拉取镜像超时/失败(如 `docker pull nginx` 卡住或报错 `timeout`)
**原因**:京东云服务器默认无公网带宽(按需付费未绑定 EIP),或 Docker 未配置国内镜像提速器。
**✅ 解决方案**:
```bash
# 1. 确保实例已分配公网 IP(EIP)或已开通 NAT 网关(出网权限)
# 2. 配置 Docker 镜像提速器(强烈推荐!)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info | grep "Registry Mirrors" # 验证生效
✅ 推荐镜像源优先级:
ustc(中科大) >163(网易) >baidu(百度),京东云华北区访问 ustc 镜像通常最快。
🔒 安全增强建议(京东云生产环境必备)
# 1. 限制 Docker Socket 访问(防止容器逃逸)
sudo chmod 600 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
# 2. 开启 Docker 的内容信任(可选)
export DOCKER_CONTENT_TRUST=1
# 3. 使用京东云容器镜像服务(JCR)替代公共仓库(企业级安全合规)
# 参考:https://docs.jdcloud.com/cn/container-registry/product-overview
✅ 最终验证清单
| 检查项 | 命令 | 预期输出 |
|---|---|---|
| Docker 版本 | docker --version |
Docker version 24.0.7, build ... |
| 服务状态 | systemctl is-active docker |
active |
| 权限测试 | docker run --rm hello-world |
输出欢迎信息 |
| 镜像提速 | docker info | grep "Registry Mirrors" |
显示配置的镜像地址 |
| 存储驱动 | docker info | grep "Storage Driver" |
overlay2 |
如遇其他错误,请提供具体报错日志(journalctl -u docker -n 50 --no-pager),我可为您精准诊断。
京东云服务器推荐搭配 Alibaba Cloud Linux 3(长期支持、内核优化好)或 Ubuntu 22.04 LTS 使用 Docker,兼容性和性能更优。
需要我提供 一键安装脚本(适配京东云各系统) 或 Docker + Nginx + SSL 自动部署模板,欢迎随时告知! 🐳
云服务器