Notary是一个Docker内容信任的支持系统,它允许发布者签名镜像并且允许消费者验证这些签名。
使用Docker CLI方式搭建
准备工作
在开始之前,确保已经安装了Docker。
步骤
-
启动Notary Server
创建一个名为
notary-server
的容器,并使用默认的Notary server配置。docker run -d --name notary-server --publish 4443:4443 \ --volume notary-server-data:/var/lib/notary \ -e NOTARY_SERVER_HOSTNAME=your_hostname \ -e NOTARY_SERVER_STORAGE_BACKEND=memory \ notary:server
参数解释:
-d
: 后台运行容器--name
: 为容器指定一个名字--publish
: 将容器内的端口映射到宿主机的端口上--volume
: 将宿主机的目录或者volume挂载到容器内的指定路径-e
: 设置容器内的环境变量
-
启动Notary Signer
创建一个名为
notary-signer
的容器,并使用默认的Notary signer配置。docker run -d --name notary-signer --publish 7899:7899 \ --volume notary-signer-data:/var/lib/notary/signer \ -e NOTARY_SIGNER_DEFAULT_ALIAS=alias_name \ -e NOTARY_SIGNER_KEY_ALGORITHM=ecdsa \ notary:signer
参数解释和上面类似,这里额外说明以下参数:
-e NOTARY_SIGNER_DEFAULT_ALIAS
: 设置默认的签名别名-e NOTARY_SIGNER_KEY_ALGORITHM
: 设置签名密钥的算法
使用Docker Compose方式搭建
准备工作
确保已经安装了Docker Compose。
创建docker-compose.yml
-
创建一个
docker-compose.yml
文件,并填入以下内容:version: '3' services: notary-server: image: notary:server ports: - "4443:4443" volumes: - notary-server-data:/var/lib/notary environment: - NOTARY_SERVER_HOSTNAME=your_hostname - NOTARY_SERVER_STORAGE_BACKEND=memory notary-signer: image: notary:signer ports: - "7899:7899" volumes: - notary-signer-data:/var/lib/notary/signer environment: - NOTARY_SIGNER_DEFAULT_ALIAS=alias_name - NOTARY_SIGNER_KEY_ALGORITHM=ecdsa volumes: notary-server-data: notary-signer-data:
-
解释
version
: 指定Docker Compose文件的版本。services
: 定义了两个服务:notary-server
和notary-signer
。image
: 指定使用的镜像。ports
: 映射容器端口到宿主机。volumes
: 配置数据卷,用于数据持久化。environment
: 设置环境变量。
启动服务
在含有docker-compose.yml
文件的目录中运行以下命令来启动服务:
docker-compose up -d
该命令将在后台启动Notary服务。
验证安装
验证Notary服务是否成功运行,可以使用以下命令检测服务状态:
docker ps
如果服务成功运行,你将看到notary-server
和notary-signer
容器在运行中。
清理资源
完成测试后,可以使用以下命令来停止并移除服务和数据卷:
docker-compose down -v
该命令会停止并移除所有服务容器,并且删除所有挂载的数据卷。
以上就是使用Docker CLI和Docker Compose搭建Docker Notary服务的教程。记得替换命令中的your_hostname
和alias_name
为实际使用的主机名和别名。