Docker 入门:在 VPS 上跑起你的第一个容器

Docker 是 VPS 玩家绕不开的技能。小够用大白话讲清容器是什么,带你在 VPS 上从安装到跑起第一个 Nginx,一小时入门不迷路。

我是小够,只推够用的 VPS。

玩 VPS 的人,早晚都会遇到 Docker。有人说它是"装应用的神器",有人说"学不会"。小够今天就用大白话把它讲透,顺手带你在 VPS 上跑起第一个容器。

Docker 到底是什么

一句话:Docker 是把"应用 + 它依赖的环境"打包成一个标准箱子(镜像),在哪台机器上打开都一个样。

以前在 VPS 上装个网站,你要操心:系统是 Ubuntu 还是 Debian?PHP 是哪个版本?扩展装全了吗?换台机器重来一遍,处处是坑。Docker 把这些连应用一起打包,你只需要一条命令,箱子在哪都能打开,打开就是能跑的状态。

对 VPS 玩家来说,Docker 最大的好处是折腾不心疼:容器删了重建是秒级的事,系统搞不坏,重装应用不用重装系统。

准备工作:一台便宜的 VPS 就够

学 Docker 不需要好机器,RackNerd、CloudCone 这种年付十几美元的机器完全够用。但注意两点:

  • 内存建议 2G 起:1G 也能跑,但多开几个容器就捉襟见肘,2G 学起来从容得多。
  • 系统选 Ubuntu 22.04 或 Debian 12:教程最多,遇到问题一搜就有答案,别用冷门系统给自己加难度。

这台机器就当学习机,别在上面放重要数据——这是学 Linux 买什么 VPS里讲过的原则,折腾和生产一定要分开。

四步跑起第一个容器

第一步:安装 Docker。 官方提供了一键安装脚本,连上 VPS 后执行:

curl -fsSL https://get.docker.com | sh

装完用 docker --version 确认能看到版本号,就是成功了。

第二步:跑一个 hello-world。 这是 Docker 世界的"Hello World":

docker run hello-world

看到 “Hello from Docker!” 就说明 Docker 已经正常工作了。这条命令背后干了三件事:拉取镜像、创建容器、运行并输出结果。

第三步:跑一个真正有用的东西——Nginx。

docker run -d --name my-nginx -p 8080:80 nginx

拆开看:-d 是后台运行,--name 给容器起个名,-p 8080:80 把容器的 80 端口映射到 VPS 的 8080 端口。跑完后浏览器访问 http://你的VPS-IP:8080,看到 Nginx 欢迎页,第一个容器就跑起来了。

第四步:学会看和管理。 记住这五个命令,日常够用:

  • docker ps:看正在跑的容器
  • docker stop my-nginx / docker start my-nginx:停 / 起
  • docker logs my-nginx:看日志,出问题先看它
  • docker rm my-nginx:删容器(删之前先 stop)

下一步:Docker Compose

单个容器会玩了,很快你会遇到"一个应用要好几个容器配合"的情况,比如网站 + 数据库。这时候就该学 Docker Compose 了:用一个 docker-compose.yml 文件把多个容器的关系写清楚,一条 docker compose up -d 全部拉起。这是 VPS 建站的标配技能,值得单独花一个下午学。

常见报错速查(新手必看)

刚学 Docker,报错是家常便饭。记住这三个最高频的:

  • Cannot connect to the Docker daemon:Docker 服务没启动,执行 systemctl start docker,再设个开机自启 systemctl enable docker。
  • port is already allocated:端口被占了,换个映射端口(比如 -p 8081:80),或者用 docker ps 看看哪个容器占着。
  • no space left on device:硬盘满了,八成是没用的镜像和容器堆积。用 docker system prune 一键清理(会删掉没在用的容器和镜像,确认没用了再执行)。

报错信息复制下来搜一下,99% 的问题都有人踩过。Docker 的社区生态是它最大的优点之一。

小够的三句话

第一,Docker 是 VPS 玩家的必修课,但别一上来就啃原理,先跑起来再说。

第二,学习机和生产机分开,便宜 VPS 随便折腾,正式网站别拿来练手。

第三,出问题先看日志(docker logs),80% 的报错日志里都写得明明白白。

第一个容器跑起来后,Docker 的世界就向你打开了。慢慢来,不着急。