在京东云(JD Cloud)服务器上部署 Docker 环境,需完成以下系统级前置配置和最佳实践建议,以确保 Docker 安装稳定、运行安全且符合生产要求:
✅ 一、基础环境准备(必需)
| 项目 | 要求说明 | 检查/操作命令 |
|---|---|---|
| 1. 操作系统 | ✔️ 推荐:Ubuntu 20.04/22.04、CentOS 7.9+(已 EOL 的 CentOS 8 不推荐)、Alibaba Cloud Linux 3 / Anolis OS(京东云兼容性好) ❌ 不支持:Windows Server(Docker Desktop 非原生)、旧内核(<3.10) |
cat /etc/os-releaseuname -r |
| 2. 内核版本 | ≥ 3.10(Docker 最低要求),强烈建议 ≥ 4.18(支持 cgroups v2、overlay2 更稳定) | uname -r |
| 3. CPU/内存 | 最低:2 核 4GB(轻量应用);生产环境建议 ≥ 4 核 8GB + SSD 云硬盘(保障 I/O) | lscpu, free -h |
| 4. 存储空间 | 至少预留 20GB 可用空间(Docker 镜像、容器、卷、日志会持续增长) | df -h / |
| 5. 网络连通性 | ✅ 确保能访问网络(下载 Docker 官方仓库、镜像源) ✅ 若使用京东云私有 Registry(如 JDCloud Container Registry),需开通对应 VPC 内网访问权限 |
ping -c 3 hub.docker.comcurl -I https://registry.cn-north-1.jcr.jdcloud.com |
✅ 二、系统级关键配置(必须调整)
| 配置项 | 为什么重要 | 操作方式 |
|---|---|---|
| 1. 关闭 SELinux(仅 CentOS/RHEL) | Docker 与 SELinux 兼容性复杂,易导致容器启动失败或权限拒绝 | bash<br>sudo setenforce 0<br>sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config<br> |
| 2. 配置防火墙(firewalld/iptables) | 避免 Docker 自动管理的 iptables 规则被防火墙拦截(尤其影响容器端口映射) | ✅ 推荐方案: – Ubuntu: sudo ufw disable(或放行所需端口)– CentOS: sudo systemctl stop firewalld && sudo systemctl disable firewalld⚠️ 生产环境如需防火墙,应配置 iptables 并允许 DOCKER-USER 链规则 |
| 3. 启用并加载内核模块 | Docker 依赖 overlay2(推荐存储驱动)、br_netfilter(网络桥接)等模块 |
bash<br>sudo modprobe overlay<br>sudo modprobe br_netfilter<br># 永久生效:<br>echo "overlay" | sudo tee /etc/modules-load.d/overlay.conf<br>echo "br_netfilter" | sudo tee /etc/modules-load.d/br_netfilter.conf<br> |
| 4. 配置内核参数(关键!) | 启用 IPv4 转发、启用 bridge-nf-call-iptables(确保容器网络正常) | bash<br>cat <<EOF | sudo tee /etc/sysctl.d/99-docker.conf<br>net.bridge.bridge-nf-call-iptables = 1<br>net.bridge.bridge-nf-call-ip6tables = 1<br>net.ipv4.ip_forward = 1<br>EOF<br>sudo sysctl --system<br> |
✅ 三、京东云平台侧配置(易忽略但关键)
| 项目 | 说明 | 操作位置 |
|---|---|---|
| 1. 安全组(Security Group) | ✅ 必须开放 Docker 容器映射的端口(如 80/443/8080) ❌ 禁止开放 2375/2376(Docker Daemon 远程 API),除非严格 TLS 认证+白名单 |
京东云控制台 → 云服务器 → 安全组 → 编辑入方向规则 |
| 2. 实例规格与磁盘类型 | ❗避免使用“共享型”实例(性能抖动影响容器稳定性) ✅ 推荐:计算型 C3/C5 或通用型 G3/G5 + SSD 云硬盘(高 IOPS) |
创建实例时选择,或升级配置 |
| 3. 镜像源优化(国内提速) | 避免拉取镜像超时/失败,配置国内镜像提速器 | /etc/docker/daemon.json 中添加:json<br>{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn"]}<br>✅ 京东云用户推荐:可使用 中科大 或 阿里云 镜像源(需注册获取) |
✅ 四、安装 Docker(标准流程)
# 1. 卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc # Ubuntu
# 或
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
# 2. 安装依赖 & 添加官方源(以 Ubuntu 22.04 为例)
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 3. 安装 Docker Engine
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
# 4. 配置镜像提速器(示例)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
# 5. 启动并设为开机自启
sudo systemctl enable docker
sudo systemctl start docker
# 6. 验证(非 root 用户需加 sudo,或加入 docker 组)
sudo docker run hello-world
🔐 安全加固建议(生产必做):
- 将普通用户加入
docker组:sudo usermod -aG docker $USER(退出重登生效)- 禁用 Docker 默认远程 API(2375/2376),防止未授权访问
- 使用
docker context+ TLS 管理远程节点(如需跨服务器编排)- 定期更新 Docker 和内核(
sudo apt upgrade docker-ce)
✅ 五、验证清单(部署后必检)
| 检查项 | 命令 | 期望输出 |
|---|---|---|
| Docker 服务状态 | sudo systemctl status docker |
active (running) |
| Docker 版本 | docker --version |
Docker version 24.x, build xxx |
| 存储驱动 | docker info | grep "Storage Driver" |
overlay2(非 aufs 或 devicemapper) |
| 容器网络 | docker network ls |
bridge, host, none 正常显示 |
| 镜像拉取测试 | docker pull nginx:alpine |
成功 Pull 并 docker images 可见 |
| 权限测试(非 root) | docker ps(切换用户后) |
无 permission denied |
💡 京东云特别提示:
- 若使用 京东云容器服务(JDCCS) 或 Kubernetes 托管集群(JDKE),无需手动部署 Docker —— 底层已预装并优化。
- 日志建议对接 京东云日志服务(JDLA) 或 Prometheus + Grafana(京东云监控) 实现可观测性。
如需我为你生成一键部署脚本(含京东云镜像源适配) 或 Docker + Nginx + HTTPS 一键部署模板,欢迎随时告知 👍
是否需要我继续提供:
- ✅ Docker Compose 环境部署指南?
- ✅ 基于京东云 Registry(JCR)的私有镜像推送/拉取全流程?
- ✅ 生产级 Nginx 反向X_X + SSL(Let’s Encrypt)自动化配置?
欢迎补充你的具体场景 😊
云服务器