在云服务器的Ubuntu系统中部署Docker需要哪些前置准备?

在 Ubuntu 云服务器上部署 Docker,通常需要先完成系统更新、安装依赖工具、配置 Docker 官方源以及设置开机自启等步骤。以下是标准的前置准备流程(以 Ubuntu 20.04/22.04 为例):


✅ 1. 更新系统软件包

sudo apt update && sudo apt upgrade -y

✅ 2. 安装必要依赖(如 ca-certificatescurlgnupglsb-release

sudo apt install -y ca-certificates curl gnupg lsb-release

💡 若使用较新版本的 Ubuntu(如 22.04+),部分工具可能已预装,但显式安装可确保兼容性。


✅ 3. 添加 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

✅ 4. 设置 Docker 稳定版软件源

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

⚠️ 注意:$(lsb_release -cs) 会自动识别 Ubuntu 代号(如 focaljammy),无需手动填写。


✅ 5. 更新 APT 索引并安装 Docker Engine

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

🔔 此命令会安装:

  • docker-ce:Docker 引擎核心
  • docker-ce-cli:命令行工具
  • containerd.io:容器运行时(Docker 默认依赖)
  • docker-buildx-plugin & docker-compose-plugin:构建增强与 Compose v2 支持(推荐安装)

✅ 6. 验证安装是否成功

docker --version
docker run hello-world

若看到欢迎信息且无报错,说明安装成功。


✅ 7. (可选但推荐)将当前用户加入 docker 组,避免每次用 sudo

sudo usermod -aG docker $USER
# 使组权限立即生效(需重新登录或执行 newgrp)
newgrp docker

📌 安全提示:加入 docker 组相当于拥有 root 权限(可通过挂载宿主机文件系统提权),生产环境请谨慎评估。


✅ 8. 设置 Docker 开机自启(通常默认已启用,可确认)

sudo systemctl enable docker
sudo systemctl start docker
systemctl status docker

📝 补充建议(云服务器场景)

  • 防火墙:若需外部访问 Docker 暴露的端口(如 80/443/自定义),需在云服务商控制台(如阿里云、腾讯云、AWS)开放对应安全组规则。
  • 资源限制:云服务器内存/CPU 有限时,建议调整 Docker 默认配置(如 /etc/docker/daemon.json 中设置 max-concurrent-downloadsstorage-driver 等)。
  • 日志轮转:防止 /var/lib/docker 爆满,可在 daemon.json 中配置日志驱动和大小限制:
    {
    "log-driver": "json-file",
    "log-opts": {
      "max-size": "10m",
      "max-file": "3"
    }
    }

    然后重启 Docker:sudo systemctl restart docker


完成以上步骤后,即可正常运行容器、管理镜像、使用 Docker Compose 等高级功能。需要我提供一键脚本或针对特定云厂商(如阿里云 ECS、AWS EC2)的优化建议吗?