Skip to content

05 · Docker ​

Docker 的坑集中在三处:网络模式选错、数据没落卷、构建缓存导致镜像巨大。这一章按这三件事展开。

小节规划 ​

小节内容状态
安装与加速官方源安装、国内镜像加速、daemon.json 常用项已写
镜像与容器run/exec/logs/inspect 的高频参数组合、退出码已写
Dockerfile 最佳实践多阶段构建、层顺序、.dockerignore、非 root 运行已写
网络bridge/host/overlay 差异、容器互访、端口映射坑已写
数据与卷volume 与 bind mount、权限与 UID、备份迁移已写
Compose 编排依赖顺序、健康检查、环境变量分层已写
私有仓库registry 搭建、HTTPS、认证、清理磁盘已写
资源与日志cpu/mem limit、日志驱动与轮转已写
排错手册起不来、连不上、镜像拉不动、磁盘暴涨已写

三条命令看清容器现状 ​

bash
docker inspect -f '{{.State.Status}} {{.State.ExitCode}} {{.State.OOMKilled}} {{.HostConfig.Memory}}' <c>
docker logs --tail 50 --timestamps <c>
docker stats --no-stream <c>

默认日志会撑爆磁盘

json-file 驱动默认不限大小,跑几个月就能把 /var/lib/docker 塞满。在 /etc/docker/daemon.json 里全局设:

json
{ "log-driver": "json-file", "log-opts": { "max-size": "50m", "max-file": "3" } }

改完要 systemctl restart docker,且只对新创建的容器生效。