造城中·📚30 篇造城日记·📝最近更新:2026年07月11日
🐳

Docker入门:从恐惧到依赖的30天

第一次看到"镜像""容器""编排",觉得它在故意难为我。30天后:回不去了。

水哥
2026-05-137 分钟阅读

我第一次听到 Docker,觉得它在故意难为我

"镜像""容器""编排""卷挂载"——每个词都像是在说:你不配。

但现在我的博客就是从 Docker 上跑的。不吹不黑,Docker 是我学的最值的技能。

我的30天学习路径

第1-7天:理解基本概念

我花了一周只看,不动手。看了10个视频、读了3篇博客,终于搞明白了两个概念:

  • 镜像(Image):一份"食谱",描述你的应用需要什么环境
  • 容器(Container):照着食谱做出来的"菜",跑在服务器上的实例

第8-14天:第一个 Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

15行代码,把我之前调试了两天的环境问题一次性解决。

第15-21天:docker-compose

多个容器一起跑的时候,docker-compose 是救命稻草:

version: '3'
services:
  app:
    build: .
    ports: ["3000:3000"]
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
  nginx:
    image: nginx:alpine
    ports: ["80:80"]

一条命令 docker-compose up -d,三个服务全部起来。

第22-30天:生产环境

学习卷挂载保证数据不丢、学习环境变量管理敏感信息、学习健康检查自动重启故障容器。

为什么说 Docker 适合独立开发者

场景裸服务器Docker
环境配置手动装Node、Nginx、PostgreSQL一行 docker-compose.yml
换服务器重新配三天复制文件,重新 up
出故障一个个排查重启容器或重建
多项目端口冲突、冲突、冲突隔离运行,互不影响

写在最后

以前我对 Docker 的恐惧,来自于看不懂那些术语。但当我自己写了第一个 Dockerfile、第一个 docker-compose.yml,发现它其实很简单——就是把"安装手册"变成了代码。

对于独立开发者来说,Docker 就是你的运维团队——一个人维护50个平台,靠的不只是代码,更是把运维自动化。

如果让我重新开始,我会第一天就学 Docker。省下来的时间,够多写好几个平台。

相关文章