VPS 装 Docker:Ubuntu/Debian 一条命令搞定
想在 VPS 上玩 Docker,第一步是把它装上。小够整理 Ubuntu 和 Debian 两套系统的安装流程:官方脚本一键装、手动加仓库两种方法,外加装完必做的四件事和常见报错。
我是小够,只推够用的 VPS。
玩 VPS 不装 Docker,就像买了智能手机只打电话——不是不行,是亏。Docker 能让你一条命令装好应用、换机器一键迁移,1 核 1G 的小机器也跑得动。今天先把第一步走完:装上它。
先确认系统和架构
截至撰写时,Docker 官方支持 Ubuntu 22.04/24.04 和 Debian 11/12。先看一眼自己的系统和 CPU 架构:
cat /etc/os-release
uname -m
x86_64 是最常见的 Intel/AMD 架构,aarch64 是 ARM(比如甲骨文 Ampere、树莓派)。两个架构 Docker 都支持,命令一样,只是拉镜像时要注意选对架构的 tag,后面会讲。
另外确认内核版本别太老:
uname -r
5.x 以上都没问题。现在主流商家给的模板都是 5.15+,基本不用操心。
装之前:先卸掉旧版本
如果你之前用系统自带源装过 docker.io(Ubuntu/Debian 仓库里那个旧包),建议先卸掉,避免和官方版本打架:
sudo apt remove -y docker.io docker-doc docker-compose podman-docker containerd runc 2>/dev/null; echo "清理完毕"
没装过的话这步直接跳过,不报错就行。
方法一:官方一键脚本(推荐新手)
Docker 官方提供了一个安装脚本,自动识别系统、配好仓库:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
跑完别急着走,验证一下:
docker --version
sudo docker run hello-world
看到 “Hello from Docker!” 就说明装好了。hello-world 是个测试镜像,跑完可以删掉,不占地方:
sudo docker rmi hello-world
这个脚本的好处是省心,坏处是"黑盒"——出了问题你不知道它干了啥。所以小够也把手动的方法写在下面,至少看一遍,心里有数。
方法二:手动加仓库再装
以 Ubuntu 为例,Debian 把命令里的 ubuntu 换成 debian 即可:
# 1. 装依赖
sudo apt update && sudo apt install -y ca-certificates curl
# 2. 加 Docker 的 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 3. 加软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") 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 docker-compose-plugin
装的是 docker-ce(社区版),个人用完全够用。docker-compose-plugin 是 Compose 插件,装完 docker compose(空格)命令就能用。
装完必做的四件事
第一,把自己加入 docker 组。 默认只有 root 能用 docker,每次 sudo 很烦:
sudo usermod -aG docker $USER
然后重新登录一次(断开 SSH 重连)才生效。注意:docker 组本质上等同 root 权限——能操作 docker 就能挂载主机任意目录。这台机器是你自己的个人 VPS 才这么干,合租的机器别加。
第二,确认 compose 插件装好了。 现在一键建站都靠它:
docker compose version
有版本号输出就行。注意现在是 docker compose(空格),老教程里的 docker-compose(短横线)是旧版本,命令不通用,别混。
第三,设置开机自启。
sudo systemctl enable --now docker
VPS 重启后 Docker 自己起来,省得每次手动开。enable 是开机自启,--now 是现在就启动,一条命令两件事。
第四,配个日志上限(防患于未然)。 Docker 默认日志无上限,跑几个月能把小硬盘塞满。现在就配好,编辑 /etc/docker/daemon.json(没有就新建):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
改完 sudo systemctl restart docker 生效。日志这事本月会单开一篇细讲,这里先埋个伏笔。
常见报错
permission denied while trying to connect to the Docker daemon:你没加 docker 组,或者加完没重新登录。重连 SSH 再试。
docker: command not found:安装没成功,或者 PATH 问题。which docker 看看,手动安装的话确认第 4 步执行完了。
E: Unable to locate package docker-ce:软件源没加对,检查 /etc/apt/sources.list.d/docker.list 里的系统代号($VERSION_CODENAME)和实际系统是否一致。小众魔改系统(如某些商家定制模板)可能代号不对,这时用一键脚本反而更省心。
够用吗
1 核 1G 的入门 VPS 跑 Docker 本体完全没压力,Docker 守护进程平时也就占几十 MB 内存。真正吃资源的是你跑的容器,这个后面单开一篇讲资源限制。
装好了?下一篇小够带你写第一个 docker-compose.yml,一个文件管起三五个容器。