努力
奋斗

阿里云轻量应用服务器上如何安装Docker?

服务器价格表

直接上干货。在阿里云轻量应用服务器(Simple Application Server, SAS)上装 Docker,核心就两步:换源/升级内核 和 执行官方安装脚本。

很多新手踩坑是因为直接用 CentOS 7 或 Ubuntu 18.04 这种老版本镜像,导致依赖包缺失或者内核不支持 cgroups v2。下面分两种主流情况操作,请对号入座。

情况一:你用的是 Ubuntu 系统(推荐)

Ubuntu 是 Docker 支持最好的发行版之一,步骤最简。

  1. 登录服务器
    通过 SSH 连接你的轻量应用服务器。

  2. 卸载旧版本(如果有)

    sudo apt-get remove docker docker-engine docker.io containerd runc

    注:全新安装的 Ubuntu 通常没有这些,跳过也行。

  3. 更新包索引并安装依赖

    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg lsb-release
  4. 添加 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
    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
  5. 再次更新并安装 Docker Engine

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  6. 验证安装

    sudo docker run hello-world

    看到 Hello from Docker! 就说明成功了。

  7. 非 root 用户权限设置(可选但推荐)
    默认 Docker 命令需要 sudo。为了方便,可以把当前用户加入 docker 组:

    sudo usermod -aG docker $USER

    注意:修改后需要重新登录 SSH 才能生效。


情况二:你用的是 CentOS/Rocky/AlmaLinux 系统

轻量应用服务器默认镜像很多是 CentOS 7 或 Stream 9。CentOS 7 已经 EOL(停止维护),Docker 新版对其支持有限,建议尽量用 CentOS Stream 8/9 或 Rocky Linux 8/9。

  1. 安装依赖

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 设置稳定仓库

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

    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  4. 启动并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 验证

    sudo docker run hello-world

⚠️ 关键注意事项(避坑指南)

  1. 防火墙问题
    轻量应用服务器有自带的“防火墙”设置(在阿里云控制台网页里),也有服务器内部的 firewalld 或 ufw。

    • 如果你要在外部访问容器端口(比如 80, 3000, 8080),必须在阿里云控制台的“防火墙”规则中放行对应端口。
    • 服务器内部防火墙也要放行,否则本地能通,网络不通。
  2. Swap 分区警告
    Docker 在新版中对 Swap 比较敏感。如果安装过程中提示 WARNING: SWAP usage is not recommended,可以忽略,或者通过修改 /etc/docker/daemon.json 来禁用这个检查:

    {
      "live-restore": true,
      "exec-opts": ["native.cgroupdriver=systemd"]
    }

    然后重启 Docker:sudo systemctl restart docker

  3. 网络模式
    轻量应用服务器通常是 NAT 网络,IP 是内网 IP,公网 IP 由阿里云映射。Docker 容器默认桥接模式(bridge)是可以正常上网的,不需要额外配置。如果你需要用 host 模式,确保端口不冲突即可。

  4. 数据持久化
    不要直接把重要数据存在容器里!容器删了数据就没了。务必使用 -v 挂载宿主机目录,或者使用 Docker Volume。
    例如:

    docker run -d -p 80:80 -v /opt/html:/usr/share/nginx/html nginx
  5. 关于 Docker Compose
    现在推荐的写法是 docker compose(无连字符),它是作为插件安装的。使用时直接运行:

    docker compose up -d

    而不是旧的 docker-compose up -d。

总结

  • 选 Ubuntu:省心,依赖少,社区文档多。
  • 选 CentOS:习惯 RHEL 系的话可以用,但注意版本不要太老。
  • 装完必做:加防火墙白名单、设置非 root 用户权限、配置数据卷挂载。

按上面步骤走,基本不会翻车。如果遇到具体报错,把错误信息贴出来再查。