在阿里云 ECS(CentOS 系统,2 核 4G)上安装和配置 Docker 是一个非常标准且高效的操作。由于内存为 4GB,完全足以运行大多数常规容器应用。
以下是基于 CentOS 7/8 或 Alibaba Cloud Linux 的完整安装与配置指南:
1. 系统更新与依赖准备
首先,更新系统包并安装必要的依赖工具(如 yum-utils),这有助于管理 Docker 的软件源。
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加 Docker 官方软件源
为了获取最新版本的 Docker,我们需要从阿里云镜像源或 Docker 官方仓库添加软件源。推荐使用阿里云镜像源以提升下载速度。
# 设置 Docker CE 的 yum 源 (使用阿里云镜像)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 如果你使用的是 CentOS 8 或 Alinux,可能需要额外启用 epel 源(通常 yum-utils 已包含)
# sudo yum install -y epel-release
注意:如果提示找不到
yum-config-manager,请先运行sudo yum install -y yum-utils。
3. 安装 Docker Engine
安装完成后,启动 Docker 服务并设置开机自启。
# 安装 Docker CE, CLI 和 Containerd
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 验证安装是否成功
docker --version
sudo systemctl status docker
4. 优化配置(针对 2 核 4G 环境)
虽然默认配置通常可用,但建议进行以下优化以提升稳定性和资源利用率:
A. 配置 Docker 镜像提速器
国内网络直接拉取 Docker Hub 镜像较慢,配置阿里云提速地址是必须的步骤。
-
编辑配置文件:
sudo vi /etc/docker/daemon.json -
填入以下内容(请替换为你自己的阿里云账号专属提速地址,登录阿里云控制台 -> 容器镜像服务 -> 实例列表 -> 镜像提速器 获取):
{ "registry-mirrors": [ "https://<你的专属提速地址>.mirror.aliyuncs.com" ], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }注:
log-opts配置用于防止日志文件无限增长占用磁盘空间。 -
重启 Docker 服务使配置生效:
sudo systemctl daemon-reload sudo systemctl restart docker
B. 将当前用户加入 docker 组(可选但推荐)
默认情况下,只有 root 用户可以运行 Docker。为了避免每次命令都加 sudo,可以将当前用户加入 docker 组:
sudo usermod -aG docker $USER
# 退出当前终端并重新登录,或者执行以下命令立即生效
newgrp docker
5. 安全加固(防火墙与安全组)
Docker 本身不监听外部端口,除非你显式映射了端口(如 -p 80:80)。
- Docker 内部:确保
/etc/sysctl.conf中未禁用转发(通常默认开启)。 - 阿里云安全组:这是最关键的一步。你需要登录 阿里云 ECS 控制台 -> 云服务器 ECS -> 实例列表 -> 安全组。
- 添加入方向规则:放行你需要访问的容器端口(例如 80, 443, 3306 等)。
- 默认情况下,Docker 不会自动开放任何端口到公网,必须手动在阿里云控制台配置。
6. 快速验证
运行一个测试容器来确认一切正常:
docker run hello-world
如果看到类似 "Hello from Docker!" 的输出,说明安装和配置成功。
总结
至此,你的阿里云 ECS 已经完成了 Docker 的安装与基础配置。接下来的步骤通常是:
- 编写
docker-compose.yml文件编排多容器应用。 - 在阿里云控制台配置好对应端口的安全组规则。
- 开始部署你的业务应用(如 Nginx, MySQL, Java 应用等)。
CLOUD技术笔记