京东云ECS实例如何正确安装和配置Docker环境?

在京东云(JD Cloud)ECS实例上正确安装和配置 Docker 环境,需结合京东云的系统环境特点(通常为 CentOS 7/8、Ubuntu 20.04/22.04 或 Alibaba Cloud Linux 等)进行标准化操作。以下是安全、稳定、符合生产实践的完整指南(以主流 Ubuntu 22.04 和 CentOS 7 为例,兼顾兼容性与最佳实践):


✅ 一、前提准备

  1. 登录 ECS 实例

    ssh -i your-key.pem ubuntu@<公网IP>  # Ubuntu
    # 或
    ssh -i your-key.pem centos@<公网IP>   # CentOS 7/8
  2. 更新系统并确认内核版本(Docker 要求)

    # Ubuntu
    sudo apt update && sudo apt upgrade -y
    uname -r  # 确保 ≥ 3.10(Ubuntu 22.04 默认 5.15+,满足要求)
    
    # CentOS 7
    sudo yum update -y
    uname -r  # 推荐 ≥ 3.10,CentOS 7 默认 3.10.0-xxx,满足;但建议启用 `overlay2` 存储驱动(需 kernel ≥ 3.10.0-957)
  3. 卸载旧版 Docker(如有)

    # Ubuntu
    sudo apt remove docker docker.io containerd runc -y
    
    # CentOS 7
    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y

✅ 二、推荐方式:使用 Docker 官方仓库安装(最稳定可靠)

▶ Ubuntu 22.04(推荐)

# 1. 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. 添加 Docker 官方 GPG 密钥(使用京东云国内镜像提速下载)
curl -fsSL https://mirrors.jdcloud.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 3. 添加稳定版仓库(使用京东云镜像源,提速访问)
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] 
  https://mirrors.jdcloud.com/docker-ce/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 更新包索引并安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 启动并设为开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 6. 验证安装
sudo docker run hello-world  # 首次运行会拉取镜像并输出欢迎信息

▶ CentOS 7(长期支持,生产常用)

# 1. 安装必要工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 2. 添加 Docker 官方仓库(使用京东云镜像提速)
sudo yum-config-manager 
    --add-repo 
    https://mirrors.jdcloud.com/docker-ce/linux/centos/docker-ce.repo

# 3. 安装最新稳定版 Docker CE(避免默认安装过旧版本)
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 4. 启动并设为开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 5. 验证
sudo docker run hello-world

⚠️ 注意:京东云官方镜像站 mirrors.jdcloud.com 已同步 Docker CE 官方仓库,比使用 https://download.docker.com 更快更稳定(尤其在国内),强烈推荐。


✅ 三、关键配置优化(生产必备)

1. 配置 Docker 使用 overlay2 存储驱动(推荐,性能好、稳定性高)

# 检查当前驱动
sudo docker info | grep "Storage Driver"

# 若非 overlay2(如 devicemapper),需配置:
sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",        # 腾讯云镜像(京东云同属国内云,延迟低)
    "https://docker.mirrors.ustc.edu.cn",       # 中科大镜像
    "https://registry.docker-cn.com"            # 已停用,可删;推荐前两者
  ],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart docker

2. 允许普通用户免 sudo 运行 Docker(提升开发体验,注意权限风险)

sudo usermod -aG docker $USER
# 退出当前 SSH 会话,重新登录生效
# 验证:docker ps

3. (可选)配置阿里云/京东云容器镜像服务(私有镜像提速)

若已开通 京东云容器镜像服务(JCR) 或阿里云 ACR:

# 登录私有仓库(示例)
sudo docker login --username=your-username registry.cn-north-1.jcr.service.jdcloud.com

# 配置镜像提速器(在 daemon.json 的 registry-mirrors 中添加)
# "https://your-namespace.jcr.service.jdcloud.com"

✅ 四、验证与测试(确保全链路可用)

# 1. 查看 Docker 版本与状态
docker --version
sudo systemctl status docker

# 2. 运行 Nginx 测试容器(带端口映射)
sudo docker run -d -p 8080:80 --name web-test nginx:alpine

# 3. 在浏览器或 curl 访问 ECS 公网 IP:8080,应看到 Nginx 欢迎页
curl http://<ECS公网IP>:8080

# 4. 清理测试容器
sudo docker stop web-test && sudo docker rm web-test

✅ 五、安全加固建议(生产环境必做)

项目 操作
🔐 关闭 Docker 默认 Socket(若无需远程 API) 确认 /lib/systemd/system/docker.service 中无 -H tcp://0.0.0.0:2375;默认仅监听 unix:///var/run/docker.sock
🛡️ 限制容器资源 启动时加 --memory=512m --cpus=1.0 等参数
📜 定期更新 sudo apt update && sudo apt install docker-ce(Ubuntu)或 sudo yum update docker-ce(CentOS)
🧹 清理无用资源 sudo docker system prune -a --volumes(定期执行)

❌ 常见问题排查

现象 解决方案
Cannot connect to the Docker daemon 检查 sudo systemctl status docker;确认用户已加入 docker 组并重登
overlay2 not supported(CentOS 7) 升级内核:sudo yum install -y kernel-ml → 重启后选择新内核启动
docker run 拉取镜像超时 检查 daemon.jsonregistry-mirrors 是否生效;sudo systemctl restart docker
京东云安全组未放行端口 登录 京东云控制台 → VPC → 安全组,开放对应端口(如 8080、2375 等)

总结:京东云 ECS 上部署 Docker,核心是
🔹 使用京东云镜像源(mirrors.jdcloud.com)提速安装
🔹 配置 overlay2 + 国内镜像提速 + 日志轮转
🔹 通过 daemon.json 统一管理配置,避免命令行临时参数
🔹 始终以 systemd 管理服务,确保高可用

如需进一步集成 Kubernetes(K3s)、Docker Compose 多服务编排、或对接京东云 JCR/JRDS,可继续补充需求,我可提供完整 YAML 示例与自动化脚本。

需要我为你生成 一键安装脚本(适配 Ubuntu/CentOS 自动识别)Docker + Nginx + SSL(Let’s Encrypt)生产部署模板 吗?欢迎随时提出 👍