Skip to content

镜像签名与验证

签名镜像

前提条件

  1. 启用 Docker Content Trust
  2. 初始化密钥

签名流程

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

最佳实践

  1. 自动化签名 - 集成到 CI/CD 流程
  2. 多签名者 - 重要镜像需要多人签名
  3. 验证签名 - 拉取时自动验证
  4. 保护密钥 - 妥善保管签名密钥
  5. 审计日志 - 记录签名和验证操作

由 BSFC Tech 提供技术支持