在京东云(JD Cloud)云服务器(ECS/JDCS)上部署 Docker 环境,主要涉及操作系统准备、网络与安全组配置、Docker 安装与配置以及安全加固四个阶段。以下是详细的前置配置步骤和注意事项:
一、操作系统选择与准备
-
推荐操作系统
- Linux 发行版:Docker 官方主要支持 Linux。推荐使用以下版本:
- CentOS 7/8 / Stream
- Ubuntu 20.04 LTS / 22.04 LTS
- Debian 10/11
- Alibaba Cloud Linux(兼容 CentOS)
- ⚠️ 避免使用 Windows Server:虽然 Docker Desktop for Windows 存在,但在服务器生产环境中,Linux 是标准且性能更好的选择。
- Linux 发行版:Docker 官方主要支持 Linux。推荐使用以下版本:
-
系统更新
登录服务器后,首先更新系统包,确保内核和基础库为最新稳定版:# CentOS/RHEL sudo yum update -y # Ubuntu/Debian sudo apt update && sudo apt upgrade -y -
重启系统(可选但推荐)
确保内核模块加载正常,特别是对于后续需要的高级网络功能。
二、网络与安全组配置(关键!)
京东云服务器默认通过安全组控制入站/出站流量。若未正确配置,Docker 容器端口将无法从外部访问。
1. 创建或修改安全组规则
- 登录 京东云控制台 → 云服务器 ECS → 安全组。
- 找到绑定到该实例的安全组,点击“管理规则”。
-
添加入站规则(Inbound): 协议类型 端口范围 授权对象 描述 TCP 22 你的IP SSH 远程登录 TCP 80, 443 0.0.0.0/0 Web 服务常用端口 TCP 自定义端口 0.0.0.0/0 或指定IP Docker 容器映射端口(如 8080, 3306 等)
✅ 最佳实践:不要对所有端口开放
0.0.0.0/0,仅开放必要端口,并限制来源 IP(如公司出口 IP)。
2. 防火墙配置(firewalld / ufw)
即使安全组已放行,服务器内部防火墙也可能拦截流量。
-
CentOS/RHEL(firewalld):
sudo systemctl start firewalld sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload -
Ubuntu(ufw):
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable # 首次启用时确认
💡 注意:Docker 会自动操作 iptables/nftables,通常不需要手动配置内部防火墙来放行容器端口,但建议保留系统防火墙用于保护宿主机本身。
三、Docker 安装前置依赖
1. 卸载旧版本(如有)
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2. 安装必要工具
# CentOS
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Ubuntu/Debian
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
3. 配置 Docker 官方源(推荐)
使用官方仓库可确保获取最新版本和安全补丁。
-
CentOS:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
Ubuntu/Debian:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
四、Docker 安装与验证
1. 安装 Docker Engine
# CentOS
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Ubuntu/Debian
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
2. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
3. 验证安装
docker --version
docker run hello-world
如果看到 “Hello from Docker!” 消息,说明安装成功。
五、高级前置配置(生产环境推荐)
1. 非 root 用户运行 Docker(安全加固)
创建 docker 用户组,并将当前用户加入其中,避免每次都用 sudo。
sudo groupadd docker
sudo usermod -aG docker $USER
# 重新登录生效
newgrp docker
2. 配置镜像提速器(国内提速)
由于 Docker Hub 在国内访问较慢,建议配置京东云或阿里云镜像提速器。
- 编辑
/etc/docker/daemon.json:{ "registry-mirrors": [ "https://<your-accelerator-url>.mirror.aliyuncs.com", "https://mirror.ccs.tencentyun.com" ] } - 重启 Docker:
sudo systemctl restart docker
3. 调整资源限制(可选)
为防止单个容器占用过多资源影响宿主机,可在 daemon.json 中设置默认值:
{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
},
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
六、常见坑点与排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
Cannot connect to the Docker daemon |
Docker 服务未启动 | sudo systemctl start docker |
| 容器端口无法访问 | 安全组未放行或防火墙阻止 | 检查京东云控制台安全组 + 服务器内部防火墙 |
permission denied |
当前用户不在 docker 组 | sudo usermod -aG docker $USER 并重新登录 |
| 下载镜像超时 | 网络不通或无提速器 | 配置镜像提速器或检查 DNS |
| IPv6 冲突 | 某些旧版 Docker 对 IPv6 支持不佳 | 在 daemon.json 中添加 "ipv6": false |
总结清单
✅ 必须完成:
- 选择 Linux 操作系统。
- 在京东云控制台配置安全组,放行所需端口。
- 安装 Docker Engine 并启动服务。
- 验证
docker run hello-world。
✅ 强烈建议:
- 配置镜像提速器以提升下载速度。
- 将普通用户加入 docker 组。
- 配置日志轮转,防止磁盘占满。
按照以上步骤操作,即可在京东云服务器上安全、高效地部署 Docker 环境。
轻量云Cloud