在阿里云轻量应用服务器(Simple Application Server)上安装 Docker,最推荐且最稳妥的方式是通过官方提供的自动化脚本进行一键安装。这种方式不仅适配了国内网络环境,还能自动处理依赖关系,避免手动配置时出现的版本冲突或权限问题。
以下是基于 CentOS 7/8、Alibaba Cloud Linux 2/3 等主流操作系统的标准操作流程。由于轻量应用服务器默认多为这些系统,以下以 CentOS 8 / Alibaba Cloud Linux 3 为例(这也是目前新建实例的默认选项),如果是 Ubuntu 或 Debian,逻辑类似但包管理器不同。
核心步骤概览
- 登录服务器:通过 SSH 连接你的轻量应用服务器。
- 执行安装脚本:使用 curl 下载并运行阿里云官方推荐的 Docker 安装脚本。
- 验证安装:检查 Docker 服务状态及版本。
- 配置镜像提速(可选但强烈建议):优化拉取速度。
详细操作指南
第一步:更新系统包(确保基础环境最新)
在执行任何安装前,先刷新本地软件包索引,确保内核和基础库是最新的。
sudo yum update -y
# 如果是 Alibaba Cloud Linux 3 或 CentOS Stream,可能使用 dnf
# sudo dnf update -y
第二步:安装 Docker Engine
阿里云轻量应用服务器通常预装了容器服务,或者允许你通过“应用镜像”直接部署 Docker 环境。如果你选择的是“Docker 应用镜像”,则无需手动安装。但如果是纯净的系统镜像,请按以下步骤操作:
方法 A:使用阿里云官方一键安装脚本(推荐)
这是最简单、出错率最低的方式。该脚本会自动添加阿里云的 Docker CE 源,并安装最新稳定版。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意:如果上述脚本因网络原因失败,可以尝试使用腾讯云或华为云的源,或者直接指定阿里云的 Docker CE 仓库地址。更稳定的方式是指定阿里云的 Docker CE YUM 源。
方法 B:手动配置阿里云 Docker CE 源(更可控)
如果脚本方式不可用,可以手动配置:
-
安装依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -
设置 Docker CE 仓库:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
第三步:启动并设置开机自启
无论采用哪种安装方式,最后都需要启动服务并设置为开机自启。
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 查看 Docker 状态
sudo systemctl status docker
第四步:验证安装
运行一个简单的测试容器,确认 Docker 能正常工作。
sudo docker run hello-world
如果输出中包含 Hello from Docker! 以及相关的说明信息,则表明安装成功。
第五步:配置非 root 用户运行 Docker(安全最佳实践)
默认情况下,Docker 守护进程绑定到 Unix socket,而该 socket 属于 root 用户。因此,要运行 Docker 命令,需要使用 sudo。为了更安全、方便,建议创建一个名为 docker 的用户组,并将当前用户加入该组。
# 创建 docker 组
sudo groupadd docker
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 重启 Docker 服务使配置生效
sudo systemctl restart docker
# 重新登录 SSH 或使用 su - $USER 切换会话,即可直接使用 docker 命令无需 sudo
第六步:配置阿里云镜像提速器(关键优化)
在国内环境中,直接从 Docker Hub 拉取镜像速度极慢甚至超时。务必配置阿里云容器镜像服务(ACR)的个人版镜像提速器。
- 登录 阿里云控制台 -> 访问 容器镜像服务。
- 左侧菜单选择“镜像工具” -> “镜像提速器”。
- 复制页面上显示的专属提速地址(例如:
https://xxxxx.mirror.aliyuncs.com)。 - 修改
/etc/docker/daemon.json文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的专属提速地址.mirror.aliyuncs.com"]
}
EOF
- 重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
常见问题与注意事项
-
防火墙设置:
轻量应用服务器的控制台有独立的防火墙策略。如果你需要在外部访问 Docker 容器中暴露的端口(如 80, 3000 等),除了在服务器内部放行端口外,还必须在阿里云控制台的“防火墙”标签页中添加对应的入方向规则。 -
SELinux 问题:
在某些 CentOS 系统中,SELinux 可能会阻止 Docker 挂载卷。如果遇到权限拒绝错误,可以临时设置 SELinux 为宽容模式进行测试:sudo setenforce 0长期解决方案是正确配置 SELinux 策略或将其永久禁用(不推荐生产环境)。
-
Kubernetes 兼容:
如果你计划后续使用 Kubernetes,请确保安装的 Docker 版本与 K8s 兼容。目前较新的 K8s 版本已逐步转向 containerd,Docker 作为运行时逐渐被弃用,但在轻量级应用中仍广泛可用。 -
资源限制:
轻量应用服务器内存较小(如 2GB 或 4GB),运行多个容器时需注意内存占用。建议在 Docker Compose 文件中为每个服务设置mem_limit,防止单个容器耗尽主机内存导致 OOM(Out of Memory)。
通过以上步骤,你可以在阿里云轻量应用服务器上快速、稳定地部署 Docker 环境,并为后续的微服务、Web 应用或开发测试提供坚实的基础。
CLOUD云枢