对个人开发者,Docker 的价值是「环境可重复」与「依赖打包」。先会 run、volume、端口映射和 compose 起一个数据库/小服务,再考虑自建镜像;生产上注意数据卷、重启策略与不要以 root 乱挂载宿主机。
你为什么需要它
没有 Docker 时常见痛点:
- 我电脑能跑,服务器不能跑
- 换机器要重装一堆依赖
- 数据库版本和同事不一致
Docker 用 镜像(只读模板)+ 容器(运行实例) 把环境固化。
五个必懂概念
| 概念 | 类比 |
|---|---|
| Image | 安装包/快照 |
| Container | 正在跑的实例 |
| Volume | 持久化硬盘抽屉 |
| Port mapping | 把容器端口接到宿主机 |
| Compose | 多容器编排说明书 |
最小命令集
# 拉镜像并运行(示例:Nginx)
docker run --name web -d -p 8080:80 nginx:alpine
# 看日志 / 进容器 / 停掉
docker logs -f web
docker exec -it web sh
docker stop web && docker rm web
数据库务必挂卷,否则删容器数据没了:
docker run --name pg -d \
-e POSTGRES_PASSWORD=change_me \
-p 5432:5432 \
-v pgdata:/var/lib/postgresql/data \
postgres:16
Compose 为什么值得学
docker-compose.yml 把「一串 run 参数」变成可版本管理的文件:
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_PASSWORD: change_me
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
pgdata:
docker compose up -d
docker compose logs -f
docker compose down
个人场景推荐
| 场景 | 建议 |
|---|---|
| 本地起 Postgres/Redis | Compose + Volume |
| 跑开源工具(n8n 等) | 官方镜像 + 环境变量 |
| 静态站 | 多数情况 不必 Docker,直接 Nginx/托管 |
| 自研 API | 先本地跑通,再写 Dockerfile |
安全与踩坑
- 不要把密钥写进镜像,用环境变量或密钥文件
- 生产密码不要用示例值
- 端口不要无脑对公网全开,配防火墙
- 数据在 volume 里,备份 volume 或逻辑备份
- 镜像标签尽量固定版本,避免
latest默默变了
要不要把 Astro 站点也 Docker 化?
静态内容站:通常 构建产物 + Nginx 更简单。
Docker 更适合:带状态的服务、多依赖 runtime、需要隔离的工具链。
下一步
RELATED / 相关推荐
接着读这些
按同一栏目、标签与技术栈为你挑选。
指南14 分钟
2026 个人开发最小技术栈:从想法到可访问产品
给个人创业者与独立开发者的精简栈建议:语言、框架、数据、鉴权、支付、部署与观察,强调可维护而不是追新。
TypeScript · Astro · Next.js
指南16 分钟
用 Astro 做技术内容站:结构、内容模型与性能要点
面向教程/评测型站点的 Astro 实践:目录结构、Content Collections、页面类型、样式策略与 SEO 基础。
Astro · MDX · Tailwind
指南13 分钟
个人技术栈备份策略:代码、内容、数据与密钥
用 3-2-1 思路为个人站与小工具设计可执行备份:Git、对象存储、数据库导出、密钥与恢复演练。
Git · VPS · Docker