在阿里云 ECS(Ubuntu 镜像)上配置 Docker 环境,通常有两种主流方式:官方推荐安装(通过 apt 包管理器)和 快速脚本安装。考虑到生产环境的稳定性,推荐使用官方提供的 docker-ce 社区版。
以下是完整的操作步骤:
1. 登录并更新系统
首先通过 SSH 登录到你的 ECS 实例,并更新软件源列表,确保获取最新的包信息:
sudo apt update
sudo apt upgrade -y
2. 安装依赖工具
Docker 的安装需要一些基础依赖包(如 ca-certificates, curl, gnupg 等),请先安装它们:
sudo apt install -y ca-certificates curl gnupg lsb-release
3. 添加 Docker 官方 GPG 密钥与仓库
为了从官方源下载最新且安全的版本,需要先添加 Docker 的官方密钥和软件源:
# 创建目录用于存放密钥
sudo mkdir -p /etc/apt/keyrings
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 添加 Docker 软件源(根据 Ubuntu 版本自动识别架构)
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
4. 安装 Docker Engine
再次更新软件源,然后安装 Docker CE、CLI 工具和容器运行时:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
注意:
containerd.io是 Docker 底层的核心组件,必须安装;docker-compose-plugin允许你使用docker compose命令运行多容器应用。
5. 启动服务并设置开机自启
安装完成后,启动 Docker 服务并设置为开机自动启动:
sudo systemctl start docker
sudo systemctl enable docker
验证安装是否成功:
sudo docker run hello-world
如果看到欢迎信息,说明安装成功。
6. (可选但推荐)将当前用户加入 docker 组
默认情况下,只有 root 用户才能运行 Docker 命令。为了避免每次都要加 sudo,可以将当前用户加入 docker 用户组:
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 立即生效(无需重新登录,但部分终端可能需要重新执行或退出重登)
newgrp docker
7. 阿里云特定优化(提速下载)
由于国内网络原因,拉取 Docker Hub 镜像可能较慢。建议在 /etc/docker/daemon.json 中配置阿里云镜像提速器。
- 登录阿里云控制台,进入你的 ECS 实例详情页,找到“镜像提速器”地址(格式通常为
https://<你的唯一标识>.mirror.aliyuncs.com)。 - 编辑配置文件:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://<你的提速器地址>"] } EOF - 重启 Docker 服务使配置生效:
sudo systemctl daemon-reload sudo systemctl restart docker
8. 安全加固建议
虽然 Docker 已经可以运行,但在公网环境下,建议检查防火墙规则:
- 阿里云安全组:确保只开放了必要的端口(如 80, 443, 22),不要直接暴露 2375 或 2376 端口。
- Docker 权限:避免以 root 身份运行容器,尽量遵循最小权限原则。
至此,你的 Ubuntu ECS 上的 Docker 环境已配置完成,可以开始部署容器化应用了。
云小栈