在京东云(JD Cloud)的 Ubuntu 实例上安装 Docker,其实和在其他任何标准的 Ubuntu 环境中操作几乎没有区别。Docker 官方并不针对特定云厂商做特殊适配,核心差异主要在于网络配置、安全组策略以及镜像提速源的设置。
以下是基于当前主流 Ubuntu 版本(20.04 LTS / 22.04 LTS / 24.04 LTS)的最佳实践步骤。为了确保稳定性和兼容性,建议直接使用 Docker 官方 APT 仓库进行安装,而不是使用 apt install docker.io(后者通常版本较旧且非官方维护)。
前置准备:系统更新与依赖
登录到你的京东云 ECS 实例,首先确保系统是最新的,并安装必要的依赖包。
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
第一步:添加 Docker 官方 GPG 密钥和 APT 源
这是最关键的一步,很多新手容易在这里出错。我们需要先验证密钥,再添加源。
- 添加官方 GPG 密钥:
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
注意:如果你的服务器在国内,直接访问
download.docker.com可能会很慢甚至超时。建议在这一步替换为国内镜像源(如阿里云或腾讯云),或者在安装完 Docker 后重点配置提速器。
第二步:安装 Docker Engine
更新包索引并安装最新版本的 Docker 组件。
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装完成后,可以通过以下命令验证是否安装成功:
sudo docker run hello-world
如果看到 “Hello from Docker!” 字样,说明环境已就绪。
第三步:配置 Docker 开机自启与非 root 用户权限
默认情况下,Docker 守护进程绑定 Unix socket,只有 root 用户或 docker 组成员才能执行 Docker 命令。为了日常使用方便,建议将当前用户加入 docker 组。
- 创建 docker 组(如果不存在):
sudo groupadd docker
- 将当前用户加入 docker 组:
sudo usermod -aG docker $USER
- 重启服务并启用开机自启:
sudo systemctl enable docker
sudo systemctl start docker
重要提示:执行完
usermod后,你需要重新登录 SSH 或执行newgrp docker才能使新组权限生效。否则后续命令仍会报 “permission denied”。
第四步:配置镜像提速器(国内环境必做)
由于 Docker Hub 在国内访问速度不稳定,拉取官方镜像时极易超时。这一步对于生产环境至关重要。
以阿里云为例(如果你没有阿里云账号,也可搜索“腾讯云容器镜像服务”获取类似地址):
- 登录阿里云控制台,进入“容器镜像服务”,找到“镜像提速器”页面,复制你的专属提速地址。
- 修改或创建
/etc/docker/daemon.json文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<你的专属代码>.mirror.aliyuncs.com"]
}
EOF
- 重启 Docker 服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 验证提速器是否生效:
docker info | grep -i registry
如果输出中包含你配置的镜像地址,说明配置成功。
第五步:京东云特有注意事项——安全组与网络
虽然 Docker 本身安装流程通用,但在京东云上部署时,务必注意以下几点:
-
安全组规则:
- Docker 默认不暴露端口到公网,除非你在运行容器时使用了
-p参数映射端口(如docker run -p 80:80 nginx)。 - 必须在京东云控制台的 安全组 中放行对应的入站端口,否则外部无法访问容器内的服务。
- 不要随意开放
2375或2376端口(Docker API 端口),这会带来严重的安全风险。
- Docker 默认不暴露端口到公网,除非你在运行容器时使用了
-
防火墙冲突:
- Ubuntu 默认可能启用
ufw防火墙。Docker 会自动处理 iptables 规则,但有时会与 ufw 产生冲突。 - 如果发现问题,可以检查
sudo ufw status,并确保允许 Docker 相关的流量。通常建议让 Docker 管理 iptables,UFW 仅作为外层防护。
- Ubuntu 默认可能启用
-
Swap 交换分区:
- Docker 在某些内核版本下对 Swap 敏感。建议在
/etc/sysctl.conf中禁用 Swap 或使用--exec-opt native.cgroupdriver=cgroupfs等高级配置,但对于大多数业务场景,保持默认即可。若遇到性能问题,可考虑关闭 Swap:sudo swapoff -a
- Docker 在某些内核版本下对 Swap 敏感。建议在
常见问题排查
- 权限不足:运行
docker ps报错permission denied?请确认你是否已重新登录 SSH 以使docker组权限生效。 - 连接被拒绝:
Cannot connect to the Docker daemon?检查sudo systemctl status docker是否处于 active (running) 状态。 - 镜像拉取失败:90% 的原因是未配置镜像提速器或网络不通。优先检查
daemon.json中的提速器地址是否正确,以及能否 ping 通网络。
按照以上步骤操作,你可以在京东云的 Ubuntu 实例上快速搭建起稳定、高效的 Docker 运行环境。
云技术博客