在阿里云轻量应用服务器(Simple Application Server,简称 SAS)上部署 Docker 其实比在 ECS 上更“无脑”一些,因为轻量服务器的镜像通常已经预装了很多基础环境,但为了稳定性和安全性,手动安装或确认版本依然是标准操作。
下面是一套经过实战验证、去除了废话的完整流程。我会把坑和注意事项都标出来。
第一步:前置检查与系统更新
轻量服务器默认通常是 CentOS 7.9、Ubuntu 20.04/22.04 或 Debian 10/11。不同发行版的命令略有差异,以下以最常见的 CentOS 7 和 Ubuntu/Debian 为例。
通用建议:
先更新系统包,防止依赖冲突。
# CentOS / RHEL
sudo yum update -y
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y
第二步:安装 Docker Engine
目前官方推荐使用 docker-ce (Community Edition)。不要直接用 yum install docker 这种老方式,容易装上旧版或者非社区维护的版本。
场景 A:如果你使用的是 CentOS / Alibaba Cloud Linux
阿里云轻量服务器很多是自带 Docker 的,你可以先检查一下:
docker --version
如果版本很老(比如 18.09 以前),或者你想用最新版,请执行以下标准安装脚本:
-
卸载旧版本(如果有)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-logrotate docker-compose-plugin docker-engine -
设置稳定仓库
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
安装 Docker 引擎、容器和插件
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
启动并设置开机自启
sudo systemctl start docker sudo systemctl enable docker -
验证安装
sudo docker run hello-world看到 "Hello from Docker!" 就说明成功了。
场景 B:如果你使用的是 Ubuntu / Debian
# 1. 安装必要依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
# 2. 添加 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
# 3. 设置仓库
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
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 5. 启动服务
sudo systemctl start docker
sudo systemctl enable docker
第三步:关键配置——免 sudo 运行 & 提速镜像
这一步不做,后续你会非常痛苦。
1. 允许当前用户直接运行 docker 命令(可选但推荐)
默认情况下,只有 root 用户可以运行 docker。如果你不想每次敲命令都加 sudo:
sudo groupadd docker
sudo usermod -aG docker $USER
# 注意:修改组后需要重新登录 SSH 会话才能生效,或者重启服务器
2. 配置国内镜像提速器(必做)
阿里云轻量服务器在国内,默认拉取 Docker Hub 的速度可能很慢,尤其是拉取 ubuntu, nginx, redis 等基础镜像时。
方法一:使用阿里云专属提速(最快)
登录阿里云控制台,进入“容器镜像服务”,复制你的个人提速地址。然后编辑 daemon.json:
sudo vi /etc/docker/daemon.json
填入以下内容(将 xxxxxx.mirror.aliyuncs.com 替换为你自己的地址):
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
方法二:如果没有阿里云账号,使用公共提速源
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}
重启 Docker 使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
第四步:轻量服务器特有的注意事项(避坑指南)
这里是我作为“过来人”总结的几个关键点,很多新手会在这里翻车:
1. 端口安全组必须开!
这是阿里云轻量服务器最容易忽略的地方。Docker 容器内部开了 80 或 8080 端口,不代表外部能访问。
你必须去阿里云控制台 -> 轻量应用服务器 -> 防火墙 -> 添加规则。
- 方向:入方向
- 协议:TCP
- 端口范围:你容器映射的端口(如 80, 8080, 3306 等)
- 授权对象:0.0.0.0/0
如果不配这个,你在本地浏览器访问 IP:端口,永远显示连接超时。
2. 内存限制
轻量服务器通常配置较低(如 1核 1G 或 2核 2G)。
- Docker 本身不占太多内存,但如果你跑多个容器(比如 Nginx + MySQL + Redis + Node.js),1G 内存很容易爆掉导致 OOM(Out of Memory)。
- 建议: 如果是 1G 内存机器,尽量只跑一个轻量级服务,或者使用 Swap 分区应急。
# 查看内存 free -h # 创建 2G swap 文件(应急用) sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
3. 数据持久化
轻量服务器的系统盘通常是随实例一起销毁的(除非你买了云盘备份策略)。
- 原则: 所有数据库、配置文件、用户上传的文件,务必挂载到宿主机目录或使用 Volume。
- 例如启动 MySQL:
docker run -d --name mysql-test -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecret mysql:8.0这样即使你重装系统或重置实例,只要保留
/root/mysql-data的数据盘,数据就不会丢。
4. IPv6 问题
部分新版 Docker 或内核在 IPv6 环境下可能会有网络不通的问题。如果发现容器内无法联网,可以尝试在 daemon.json 中禁用 IPv6:
{
"ipv6": false
}
第五步:常用运维命令速查
- 查看正在运行的容器:
docker ps - 查看日志(调试神器):
docker logs -f <容器ID或名称> - 进入容器内部:
docker exec -it <容器ID> bash - 停止容器:
docker stop <容器ID> - 删除容器:
docker rm <容器ID> - 删除镜像:
docker rmi <镜像ID> - 清理无用资源(释放磁盘空间):
docker system prune -a(谨慎使用,会删除所有未使用的镜像和卷)
总结
在阿里云轻量服务器上装 Docker,核心就三步:
- 装好 Docker CE(别用旧版)。
- 配好镜像提速(否则下载慢到怀疑人生)。
- 开对防火墙端口(否则网络连不上)。
只要这三点做好了,剩下的就是写 docker-compose.yml 玩起来了。对于个人开发者或小团队项目,这套组合拳足够稳定且高效。
云技术博客