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.io软件包版本落后,也不带 Compose 插件。 - 只开放你发布出去的端口。 容器的
-p 8080:80会暴露 8080 端口——把 Docker 和 UFW 防火墙 搭配使用。 - 根据容器来配置机器规格,而不是根据 Docker 本身——它很轻量。
下一步
装好 Docker 之后,你几乎可以自建任何服务。参见 在一个 IP 上自建多个服务,或者具体的 Docker 搭建案例,比如 RustDesk 远程桌面服务器 和 Uptime Kuma 监控。要在前面加上域名和 HTTPS,参见 如何配置 nginx 反向代理。
评论
暂无评论。来做第一个吧。