加油
努力

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

在阿里云 ECS(2核4G)实例上正确安装 Docker 环境,推荐使用 官方 Docker CE(Community Edition)的稳定版本,通过 APT(Ubuntu/Debian)或 YUM/DNF(CentOS/RHEL/Alibaba Cloud Linux) 官方仓库安装,避免使用系统自带的过时包(如 docker.io 或旧版 docker)。以下是分步骤、安全可靠的完整指南(适配主流阿里云镜像系统):


✅ 前提确认(请先执行)

# 查看操作系统信息(关键!选择对应步骤)
cat /etc/os-release
# 或
uname -r && cat /etc/redhat-release  # CentOS/Alibaba Cloud Linux
# 或
lsb_release -a  # Ubuntu/Debian

⚠️ 阿里云 ECS 默认推荐系统:Alibaba Cloud Linux 3(推荐)Ubuntu 22.04 LTS(长期支持,兼容性好)。本文覆盖两者。


✅ 方案一:Alibaba Cloud Linux 3 / CentOS Stream 8+ / RHEL 8+(推荐阿里云用户)

✅ 优势:内核优化、与阿里云深度集成、Docker 支持完善

步骤 1:更新系统 & 安装依赖

sudo dnf update -y
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

步骤 2:添加 Docker 官方 YUM 仓库(稳定版)

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

💡 注:Alibaba Cloud Linux 3 兼容 CentOS 8 仓库,可直接使用;若提示 yum-config-manager: command not found,先运行 sudo dnf install -y yum-utils

步骤 3:安装 Docker CE(指定稳定版本,避免自动升级到测试版)

# 查看可用版本(可选)
dnf list docker-ce --showduplicates | sort -r

# 推荐安装最新稳定版(如 26.1.x)
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# ✅ 启用并启动服务
sudo systemctl enable docker
sudo systemctl start docker

# ✅ 验证安装
sudo docker --version          # 应输出类似:Docker version 26.1.4, build ...
sudo docker run --rm hello-world  # 首次拉取并运行测试容器(需网络通畅)

✅ (重要)配置非 root 用户免 sudo 运行 Docker(提升安全性与便利性)

# 创建 docker 组(如不存在)
sudo groupadd docker

# 将当前用户(如 ec2-user 或 root)加入 docker 组
sudo usermod -aG docker $USER

# 重新登录终端或刷新组权限(立即生效)
newgrp docker

# 验证(无需 sudo)
docker ps -q  # 应返回空行(无容器运行),不报 permission denied

✅ 方案二:Ubuntu 22.04 LTS(阿里云热门选择)

步骤 1:卸载旧版(如有)

sudo apt remove docker docker-engine docker.io containerd runc -y
sudo apt autoremove -y

步骤 2:安装依赖 & 添加 Docker GPG 密钥和仓库

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

# 添加 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

# 添加稳定版仓库(Ubuntu 22.04 codename = jammy)
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

步骤 3:安装 Docker CE

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

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

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

✅ 配置非 root 用户(同上)

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker ps -q  # 无错误即成功

✅ 【必做】生产环境优化建议(2核4G ECS)

项目 推荐操作 说明
✅ 配置镜像提速器(国内必备) bash sudo mkdir -p /etc/docker<br>sudo tee /etc/docker/daemon.json <<-'EOF'<br>{<br> "registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"]<br>}<br>EOF<br>sudo systemctl daemon-reload<br>sudo systemctl restart docker | 替换 <your-mirror-id> 为你的阿里云容器镜像服务控制台中创建的个人专属提速器地址(免费,大幅提升 pull 速度)
✅ 调整容器默认存储驱动(推荐 overlay2) docker info | grep "Storage Driver" → 应为 overlay2(Alibaba Cloud Linux 3 / Ubuntu 22.04 默认已启用,无需修改) 若为 vfs(性能差),需检查内核版本 ≥ 4.0 且 /var/lib/docker 所在文件系统为 ext4/xfs
✅ 限制容器资源(防 OOM) docker run 时加参数:--memory=2g --cpus=1.5 2核4G 实例建议单容器不超过 2GB 内存 + 1.5 核 CPU,留余量给系统及 containerd
✅ 日志轮转(防磁盘占满) /etc/docker/daemon.json 中添加:
"log-driver": "json-file",<br>"log-opts": {"max-size": "10m", "max-file": "3"}
避免 docker logs 无限增长(尤其 Nginx/Java 容器)

❌ 常见错误与规避

现象 原因 解决
Cannot connect to the Docker daemon docker 服务未启动 / 用户未加入 docker 组 sudo systemctl start docker + newgrp docker
permission denied while trying to connect to ... 权限问题(最常见) 务必执行 sudo usermod -aG docker $USER + newgrp docker(或重新 SSH 登录)
hello-world: Permission denied 镜像提速器配置错误或网络不通 检查 daemon.json 格式(JSON 严格)、镜像地址是否有效、ping <mirror-domain>
Error response from daemon: cgroup ... 内核不支持 cgroup v2(旧系统) Alibaba Cloud Linux 3 / Ubuntu 22.04 默认启用 cgroup v2,无需降级;如遇此错,升级内核或换系统

✅ 验证清单(安装完成后逐项检查)

# 1. Docker 版本与状态
docker --version
systemctl is-active docker  # 应为 "active"

# 2. 运行权限(无 sudo)
docker ps -q

# 3. 网络与镜像提速
docker info | grep -i "registry-mirrors|storage driver"

# 4. 基础功能
docker run --rm -it alpine:latest sh -c 'echo "Hello from Alpine!"'

# 5. (可选)部署一个轻量服务验证
docker run -d -p 8080:80 --name nginx-test nginx:alpine
curl -I http://localhost:8080  # 应返回 200 OK
docker stop nginx-test

完成!
你现在已在阿里云 ECS(2核4G)上拥有安全、高效、符合生产规范的 Docker 环境。后续可部署 Nginx、MySQL、Redis、Node.js 应用等。

📌 温馨提示

  • 首次 docker pull 可能较慢,请耐心等待(启用阿里云镜像提速后通常 10~30 秒内完成)
  • 生产环境建议配合 Docker ComposeKubernetes(ACK) 管理多容器应用
  • 如需持久化数据,务必使用 -v /host/path:/container/path 挂载宿主机目录(ECS 系统盘空间有限,建议挂载数据盘)

需要我为你生成 一键安装脚本(适配系统自动检测)Docker Compose 示例(Nginx + PHP + MySQL),欢迎随时告诉我 👇

云服务器