在阿里云ECS 2核4G实例上如何正确安装Docker环境?

在阿里云 ECS(2核4G,推荐 CentOS 7/8 或 Ubuntu 20.04+/22.04)上正确安装 Docker,需遵循官方推荐方式(避免使用系统自带过旧的 docker 包),并兼顾生产环境稳定性与安全性。以下是分步、安全、可复现的安装指南(以 CentOS 7/8Ubuntu 22.04 为例,二者选一即可):


✅ 前提检查(所有系统必做)

# 1. 确保系统已更新
sudo yum update -y          # CentOS/RHEL
# 或
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian

# 2. 检查内核版本(Docker 要求 ≥ 3.10,ECS 默认满足)
uname -r  # 应显示如 4.18.0-305.el8.x86_64 或 5.15.0-xx-generic

# 3. 确认已启用 cgroups v1(CentOS 7/8 默认支持;Ubuntu 22.04 默认 cgroups v2,但 Docker 24+ 已原生支持,无需降级)
# ✅ 无需手动切换 cgroups(除非运行老版 Docker < 23.0,当前推荐安装最新稳定版)

🐳 方式一:推荐 —— 使用 Docker 官方仓库安装(最稳定、及时更新)

▶️ 对于 CentOS 7/8(阿里云默认镜像多为 CentOS 7/8)

# 1. 卸载可能存在的旧版 Docker(如有)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 2. 安装必要依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 3. 添加 Docker 官方 yum 源(使用阿里云镜像提速,更快更稳)
sudo yum-config-manager 
    --add-repo 
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 清理缓存并生成元数据(重要!否则可能报错)
sudo yum makecache

# 5. 安装最新稳定版 Docker CE(自动安装 containerd、runc 等依赖)
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 6. 启动并设为开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 7. 验证安装
sudo docker version
sudo docker run --rm hello-world  # 首次运行会拉取镜像并输出欢迎信息

说明

  • 使用 https://mirrors.aliyun.com/docker-ce/ 是阿里云官方镜像源,国内访问极快;
  • docker-ce-clicontainerd.io 是必需组件,不可省略;
  • 不建议用 yum install docker(那是旧版 docker 包,已废弃且不兼容新版生态)。

▶️ 对于 Ubuntu 22.04(或 20.04)

# 1. 卸载旧版(如有)
sudo apt remove docker docker-engine docker.io containerd runc

# 2. 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 3. 添加 Docker 官方 GPG 密钥(使用阿里云镜像源)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 添加稳定版仓库(阿里云镜像)
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 更新包索引并安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 6. 启动并开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 7. 验证
sudo docker version
sudo docker run --rm hello-world

💡 提示:docker-buildx-plugindocker-compose-plugin 是现代 Docker 推荐的插件化 Compose(替代旧 docker-compose),开箱即用。


🔐 生产增强配置(强烈建议,尤其 2核4G ECS)

# 1. 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER
# ⚠️ 执行后需重新登录 SSH 或运行:newgrp docker

# 2. 配置 Docker 镜像提速器(大幅提升国内拉取速度)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://<your-registry-mirror>.mirror.aliyuncs.com",  // 替换为你的阿里云容器镜像服务提速器地址
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

# 3. 重载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# ✅ 验证提速器生效:
sudo docker info | grep "Registry Mirrors" -A 2

🔑 如何获取专属提速器?
登录 阿里云容器镜像服务 ACR → 左侧「镜像工具」→ 「镜像提速器」→ 复制 https://xxxx.mirror.aliyuncs.com 地址(免费,限阿里云账号)。


🧪 验证与基础测试(确保一切正常)

# 查看 Docker 状态
sudo systemctl status docker

# 查看资源占用(2核4G 下应轻量)
docker info | grep -E "(CPUs|Total Memory|Storage Driver)"

# 运行一个轻量容器测试网络和存储
sudo docker run -d --name nginx-test -p 8080:80 nginx:alpine
curl -I http://localhost:8080  # 应返回 200 OK
sudo docker stop nginx-test && sudo docker rm nginx-test

❌ 常见错误规避

问题 原因 解决
Cannot connect to the Docker daemon 用户未加 docker 组 或 daemon 未启动 sudo systemctl start docker + sudo usermod -aG docker $USER + 重登
Failed to download metadata for repo 'docker-ce-stable' CentOS 8 EOL 或源配置错误 改用 centos/7 源(即使系统是 CentOS 8 Stream)或升级到 CentOS Stream 9/AlmaLinux 8+
docker: command not found PATH 未包含 /usr/bin(极罕见) sudo ln -s /usr/bin/docker /usr/local/bin/docker 或检查 shell profile

✅ 最终建议(针对 2核4G ECS)

  • 内存管理:Docker 默认不限制容器内存,建议对生产容器加 --memory=2g --memory-swap=2g 防止 OOM;
  • 日志轮转:已通过 daemon.json 配置,防止 /var/lib/docker/containers/ 日志撑爆磁盘;
  • 定期清理:添加定时任务清理无用镜像/容器(可选):
    # 每周清理(加入 crontab -e)
    0 2 * * 0 /usr/bin/docker system prune -af --volumes

✅ 完成!你现在拥有一套符合阿里云最佳实践、国内提速、安全可控的 Docker 环境,可直接部署应用、Kubernetes 节点(kubeadm)、或 Docker Compose 项目。

需要我为你生成一键安装脚本(含镜像提速器自动获取)、或部署 Nginx/MySQL 示例、或配置 Docker + Nginx 反向?欢迎继续提问 👇