容器与编排Image
镜像 是什么?
只读的分层模板,包含应用和它需要的一切
类比:系统安装盘的快照,装多少次都一样
分层结构
镜像由一层层只读层叠加而成,每条 Dockerfile 指令生成一层。层可以被多个镜像共享,所以拉取时只下载缺的层。
容器启动时在最上面加一个可写层,所有修改都在这一层,删容器就没了。
tag 与 digest
latest 不是「最新版」,只是默认 tag,会随时间变化,生产环境绝对不要用。用固定版本 tag 或 digest(sha256)保证每次部署的是同一份镜像。
- tag 可变,digest 不可变
- 同一镜像多架构(amd64/arm64)用 manifest list
- 镜像仓库要配清理策略,否则存储成本失控
安全
基础镜像要选可信来源并定期重建;用非 root 用户运行;扫描漏洞(trivy/grype);不要把密钥打进镜像层,历史层里删掉也能被翻出来。