在京东云(JD Cloud)ECS实例上正确安装和配置 Docker 环境,需结合京东云的系统环境特点(通常为 CentOS 7/8、Ubuntu 20.04/22.04 或 Alibaba Cloud Linux 等)进行标准化操作。以下是安全、稳定、符合生产实践的完整指南(以主流 Ubuntu 22.04 和 CentOS 7 为例,兼顾兼容性与最佳实践):
✅ 一、前提准备
-
登录 ECS 实例
ssh -i your-key.pem ubuntu@<公网IP> # Ubuntu # 或 ssh -i your-key.pem centos@<公网IP> # CentOS 7/8 -
更新系统并确认内核版本(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) -
卸载旧版 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.json 中 registry-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)生产部署模板 吗?欢迎随时提出 👍
CLOUD技术笔记