EQVPS

如何在 VPS 上安装 Docker

用正确的方式在 Ubuntu 上安装 Docker Engine 和 Compose 插件——从 Docker 官方仓库安装,而不是过时的发行版软件包——然后运行一个测试容器并设置为开机自启。几条命令就能得到一台可用的容器主机。

Docker 把一个应用和它需要的一切打包进一个容器,让它在任何地方都能以同样的方式运行——这是在 VPS 上自建服务最干净的方式。在 Ubuntu 和 Debian 上唯一要注意的是,发行版自带仓库中的版本往往比较旧,而且不带现代的 Compose 插件。请改用 Docker 官方仓库来安装。以下是完整流程。

1. 设置 Docker 官方仓库(Ubuntu)

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

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

2. 安装 Docker Engine 和 Compose

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. 确认它正在运行并已设置为开机自启

sudo systemctl enable --now docker
sudo docker run --rm hello-world

hello-world 容器会被下载下来,打印一条成功信息然后退出——这就证明了引擎工作正常。

4.(可选)在不使用 sudo 的情况下运行 Docker

sudo usermod -aG docker $USER
# log out and back in for the group to take effect

只对你信任的用户这样做——docker 组的访问权限在这台主机上实际上等同于 root。

一个真实的小容器

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# visit http://YOUR.SERVER.IP:8080

--restart unless-stopped 正是让容器在重启后自动恢复的关键。

诚实的提醒

下一步

装好 Docker 之后,你几乎可以自建任何服务。参见 在一个 IP 上自建多个服务,或者具体的 Docker 搭建案例,比如 RustDesk 远程桌面服务器Uptime Kuma 监控。要在前面加上域名和 HTTPS,参见 如何配置 nginx 反向代理

常见问题

我应该用 'apt install docker.io' 还是 Docker 官方仓库?

想要一个较新的版本,请用 Docker 官方仓库(见下方步骤)。发行版自带的 docker.io 软件包虽然方便,但版本往往落后,而现代的 'docker compose' 插件是随官方软件包一起提供的。如果你只需要一台临时用完即弃的机器,docker.io 也够用。

'docker compose' 和 'docker-compose' 有什么区别?

旧的 'docker-compose' 是一个独立的 Python 工具(带连字符)。现在用的是 'docker compose'(中间有空格)——一个随 Docker 一起打包的插件。请使用这个插件;独立工具已经是遗留方案。按下面的步骤安装 docker-compose-plugin 就能获得它。

如何在不每次输入 sudo 的情况下运行 Docker?

把你的用户加入 docker 组:'sudo usermod -aG docker $USER',然后重新登录一次。请注意,这实际上等于通过容器授予了 root 级别的访问权限,所以只对你信任、且是你自己机器上的用户这样做。

Docker 需要多少内存?

Docker 本身很轻量;真正吃资源的是你运行的容器。一两个小型应用在 1 GB 的机器上就能舒服运行,而更重的组合(数据库、多个服务)则需要更多余量。请根据工作负载来选配置,而不是根据 Docker 本身。

重启之后我的容器还会在吗?

只有你明确告诉它们要这样做才会。按照下面的步骤,Docker 的服务会被设置为开机自启,而以 '--restart unless-stopped'(或在 Compose 中配置同样的策略)启动的容器会自动恢复。如果没有设置重启策略,容器在重启后就会保持停止状态。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。