镜像签名与验证
签名镜像
前提条件
- 启用 Docker Content Trust
- 初始化密钥
签名流程
sh
# 1. 构建镜像
docker build -t myimage:latest .
# 2. 签名镜像
docker trust sign myimage:latest
# 3. 推送镜像(签名会自动推送)
docker push myimage:latest使用 Notary CLI
sh
# 安装 Notary CLI
# ...
# 初始化 Notary
notary init myimage
# 签名镜像
notary sign myimage:latest验证镜像
自动验证
启用 DCT 后,拉取镜像时自动验证:
sh
export DOCKER_CONTENT_TRUST=1
docker pull myimage:latest如果签名无效,拉取会失败。
手动验证
sh
# 查看签名信息
docker trust inspect --pretty myimage:latest
# 查看详细签名
notary list myimage多签名者
多个签名者可以共同签名镜像:
sh
# 添加签名者
docker trust signer add signer1 myimage
# 签名者签名
docker trust sign myimage:latest撤销签名
sh
# 撤销签名
notary revoke myimage:latest最佳实践
- 自动化签名 - 集成到 CI/CD 流程
- 多签名者 - 重要镜像需要多人签名
- 验证签名 - 拉取时自动验证
- 保护密钥 - 妥善保管签名密钥
- 审计日志 - 记录签名和验证操作