多阶段构建
把编译链全部留在 builder 阶段,运行时只拷贝产物。同一个服务,镜像从 1.2 GB 压到 190 MB 左右,拉取时间短了一个量级。
containers · build · logs
一个人折腾容器的地方。每次构建、每次挂掉、每次修好,都留在这里。
写代码,也修环境
我平时做后端和运维方向的事,日常跟镜像、编排、日志打交道。这里没有产品,也没有账号体系,只放我自己在 Docker 上的实验、踩过的坑和最后落下来的结论。
写下来的理由很实在:同一类问题第二次出现时,翻自己的笔记比重新排查快得多。所以这里的东西偏工程细节——一条命令为什么这么写,一个配置为什么必须放在那个位置。
如果你也在把服务往容器里搬,这里大概能找到一些能直接抄走的东西。
三件一直在打磨的事
把编译链全部留在 builder 阶段,运行时只拷贝产物。同一个服务,镜像从 1.2 GB 压到 190 MB 左右,拉取时间短了一个量级。
web、api、worker、db 四个服务共用一份 compose 文件起停。网络靠自定义 bridge 隔离,只有 api 能连到数据库。
数据放命名卷,配置文件用只读挂载。升级时只换镜像不动数据,回滚就是把 tag 换回去。
按时间往下走
敲得最多的几条
# 重建并后台启动
docker compose up -d --build
# 只看某个服务日志
docker compose logs -f --tail=100 api
# 一次性资源占用快照
docker stats --no-stream
# 清掉悬空镜像
docker image prune -f
聊聊容器,或者指出我写错的地方