在 Ubuntu 系统上为轻量服务器(如阿里云 ECS、腾讯云 CVM、华为云云耀云服务器等)部署 Docker,核心逻辑是统一的。虽然不同云厂商的镜像源或安全组策略略有差异,但底层安装步骤基本一致。
以下是基于当前主流 LTS 版本(Ubuntu 20.04/22.04)的生产级部署方案,重点在于安全性、性能优化以及国内网络环境的适配。
1. 基础环境准备与清理
首先登录服务器,执行系统更新并清理旧版残留(如果之前尝试过安装),避免依赖冲突。
# 更新软件包索引
sudo apt update && sudo apt upgrade -y
# 卸载旧版本 Docker(如果有)
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt remove $pkg -y
done
2. 配置国内镜像源(关键步骤)
由于 Docker Hub 在国内访问不稳定,直接拉取镜像极易超时。建议在安装前配置国内镜像提速器,推荐使用阿里云或腾讯云提供的官方提速地址(需先注册对应云平台账号获取专属地址)。
创建或编辑配置文件 /etc/docker/daemon.json:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
注:registry-mirrors 中的地址请替换为你所在云厂商提供的真实提速地址,上述地址仅为示例。同时,exec-opts 的配置是为了让 Docker 与 systemd 完美协同,防止容器内进程管理异常。
3. 安装 Docker 官方源
不要直接使用 apt install docker.io(该版本通常较老且功能受限),应使用 Docker 官方提供的 APT 仓库以确保获得最新稳定版。
步骤如下:
-
安装必要依赖:
sudo apt install ca-certificates curl gnupg lsb-release -y -
添加 Docker 官方 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 -
安装 Docker Engine, CLI 和 Containerd:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
4. 启动服务与权限配置
安装完成后,启动 Docker 服务并将其设置为开机自启。为了后续操作方便,将当前用户加入 docker 用户组,避免每次执行命令都要加 sudo。
# 启动并启用服务
sudo systemctl enable --now docker
# 验证安装
docker version
docker info
# 添加当前用户到 docker 组(注意:$USER 变量代表当前登录用户)
sudo usermod -aG docker $USER
# 重新加载组信息(无需重启,但建议注销重登)
newgrp docker
5. 轻量服务器特有优化与安全加固
在公有云轻量服务器上,还需关注以下两点:
-
安全组配置:
确保云控制台的安全组规则中,已放行 Docker 默认端口(通常是 2375 用于远程管理,生产环境严禁直接开放;如果是运行业务容器,需根据业务需求开放 80, 443, 自定义端口等)。Docker 守护进程默认监听 Unix Socket (/var/run/docker.sock),无需额外开放 TCP 端口给公网。 -
内存限制调整:
轻量服务器(特别是 1核 1G 或 2G 内存的实例)资源紧张。Docker 默认可能占用较多内存。可以通过修改/etc/docker/daemon.json限制资源:{ "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 65535, "Soft": 65535 } }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] }注:
overlay2是 Linux 内核推荐的高效存储驱动,务必保持开启。
修改配置后需重启 Docker:
sudo systemctl restart docker
6. 验证与测试
最后,运行一个测试容器确认一切正常。由于配置了镜像提速,这一步应该很快完成。
# 运行 Hello World 容器
docker run hello-world
# 查看容器列表
docker ps -a
总结
在 Ubuntu 轻量服务器上部署 Docker,关键在于使用官方源而非发行版自带源,以及提前配置国内镜像提速。完成上述步骤后,你的服务器即可稳定运行各类容器化应用。对于生产环境,建议配合 docker-compose 进行编排管理,并定期通过 docker system prune 清理无用数据以节省磁盘空间。
CLOUD云枢