努力
加油

Ubuntu系统下如何在轻量应用服务器上安装Docker?

在阿里云、腾讯云等国内主流云厂商的轻量应用服务器上安装 Docker,其实和在自己买的 ECS/CVM 或者物理机上装没什么本质区别。核心步骤都是:更新源 -> 安装依赖 -> 添加官方 GPG 密钥 -> 安装 Docker CE。

不过,因为轻量服务器配置通常不高(内存可能只有 1G-2G),且为了系统稳定性,有几个细节需要注意,比如 Swap 分区设置和内核参数优化。下面我把最稳妥、最通用的“官方推荐”流程梳理一遍,同时针对国内网络环境做一点适配。

前置准备:检查系统状态

登录到你的 Ubuntu 轻量服务器(通常是 SSH 连接)。先确认一下你的 Ubuntu 版本,Docker 对版本有要求,建议是 Ubuntu 20.04 LTS 或 22.04 LTS。如果是更老的版本(如 16.04/18.04),建议直接重装系统,别折腾了,兼容性太差。

lsb_release -a

确保系统是最新的:

sudo apt update && sudo apt upgrade -y

第一步:处理 Swap 问题(关键)

很多轻量服务器默认没有开启 Swap,或者 Swap 太小。Docker 在某些情况下对内存敏感,如果物理内存耗尽,进程会被 OOM Kill。虽然这不是安装 Docker 的必要步骤,但为了后续跑容器稳定,强烈建议检查并适当调整 vm.swappiness。

查看当前 swappiness 值:

cat /proc/sys/vm/swappiness

如果是 0 或很低,可以临时调整为 10(让系统在物理内存紧张时优先使用 Swap 而不是直接杀进程):

sudo sysctl vm.swappiness=10

注:这步不是必须,但属于运维最佳实践。

第二步:卸载旧版本(如果有)

如果你之前手动装过 docker.io 或 docker-engine,最好先清理掉,避免冲突。

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

第三步:安装 Docker 官方推荐方式

这是目前最标准、最不容易出错的方法。由于国内访问 Docker 官方源有时不稳定,我们可以选择直接使用 Ubuntu 自带的仓库(简单粗暴,适合新手)或者配置国内镜像提速(更专业)。

方案 A:最简单法(使用 Ubuntu 自带仓库)

对于轻量服务器,追求快速启动服务,直接用 apt 源里的版本是最省心的。

# 1. 安装必要依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 2. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 3. 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 更新索引并安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

注意:如果 curl 下载密钥失败,说明网络不通。这时候需要换用国内镜像源,见方案 B。

方案 B:国内环境友好型(推荐)

如果上面的命令卡住不动,大概率是 DNS 解析或网络问题。我们可以改用清华大学镜像源或者阿里镜像源来拉取软件包。

以阿里云为例(假设你用的是阿里云轻量):

  1. 修改 sources.list(可选,但推荐):
    将 /etc/apt/sources.list 中的地址替换为阿里云 Ubuntu 镜像源,例如:

    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    # 根据实际版本修改 focal (20.04) 或 jammy (22.04)
  2. 安装 Docker:
    此时再执行方案 A 的步骤 2-4,速度会快很多。

或者,你可以直接使用 snap 安装(如果你的 Ubuntu 支持 snap):

sudo snap install docker

缺点:Snap 版本的 Docker 权限管理比较严格,可能需要额外配置用户组,且占用磁盘稍多,不推荐在生产环境使用,仅用于测试。

第四步:验证安装与启动

安装完成后,Docker 服务通常会自动启动。检查状态:

sudo systemctl status docker

如果看到 active (running),说明正常。如果没有,手动启动:

sudo systemctl start docker
sudo systemctl enable docker

运行 Hello World 测试:

sudo docker run hello-world

如果输出了一堆信息,最后提示 “Hello from Docker!”,那就搞定了。

第五步:免 sudo 运行 Docker(提升体验)

默认情况下,每次运行 docker 命令都要加 sudo,很麻烦。我们可以把当前用户加入 docker 用户组。

# 创建 docker 组(如果不存在)
sudo groupadd docker

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重启会话生效(或者直接注销重新登录)
newgrp docker

之后你就可以直接输入 docker ps 而不需要 sudo 了。

进阶优化:配置镜像提速器(必做)

在国内,拉取 Docker Hub 的镜像非常慢,甚至超时。必须配置镜像提速器。这里以阿里云为例(腾讯云也有类似的)。

  1. 登录阿里云控制台,找到“容器镜像服务”,获取你的专属提速器地址(格式类似 https://xxxxxx.mirror.aliyuncs.com)。
  2. 编辑 Docker 配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://你的专属提速器地址.mirror.aliyuncs.com"]
}
EOF
  1. 重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker

常见坑点提醒

  1. 内核模块缺失:某些轻量服务器使用的是定制内核,可能缺少 overlay2 存储驱动所需的内核模块。如果 Docker 启动失败,查看日志 journalctl -xeu docker。如果遇到 kernel version not supported 错误,可能需要升级内核或使用 vfs 驱动(性能较差,不推荐)。
  2. 防火墙问题:轻量服务器通常开启了安全组。如果你要在宿主机上暴露端口(如 -p 80:80),记得去云厂商的控制台里,在“防火墙”或“安全组”规则中放行对应端口。
  3. 内存不足:如果服务器内存小于 1GB,跑多个容器容易 OOM。建议限制单个容器的内存使用,或者增加 Swap。

总结

在 Ubuntu 轻量服务器上装 Docker,核心就是:更新系统 -> 添加官方源/GPG密钥 -> apt install docker-ce -> 配置镜像提速。整个过程不到 5 分钟。只要网络通畅,基本不会遇到什么大坑。装完后,记得顺手配个镜像提速,否则后续拉镜像会让你怀疑人生。