奋斗
努力

京东云服务器上安装Docker时常见的错误及解决方法?

云计算

在京东云(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 foundJob 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 自动部署模板,欢迎随时告知! 🐳

未经允许不得转载:云服务器 » 京东云服务器上安装Docker时常见的错误及解决方法?