Docker 制品库
579 字约 2 分钟
登录 CNB Docker 制品库
登录命令如下。如何获取 CNB_TOKEN 请参考创建访问令牌。
docker login docker.cnb.build -u cnb -p ${CNB_TOKEN}Docker 制品路径规则
发布制品到仓库时,支持两种命名规则:
- 同名制品:制品路径与仓库路径一致,如:
docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE} - 非同名制品:以仓库路径作为命名空间,制品路径 = 仓库路径/制品名称,如:
docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>
推送制品
本地命令行推送
同名制品
docker build -t docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE}:latest .
docker push docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE}:latest非同名制品
docker build -t docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>:latest .
docker push docker.cnb.build/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>:latest云原生构建中推送
.cnb.yml
main:
push:
- services:
- docker
stages:
- name: docker build
script: docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
- name: docker push
script: docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest云原生开发中推送
同名制品
docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest非同名制品
docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>:latest .
docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>:latest使用制品
在命令行使用
docker pull docker.cnb.build/<ARTIFACT_PATH>:latest
# ...定制云原生构建环境
.cnb.yml
main:
push:
- docker:
image: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
stages:
- name: hello world
script: echo "Hello World"定制云原生开发环境
.cnb.yml
$:
vscode:
- docker:
image: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
services:
- vscode
- docker限制
单层最大 64 GB
镜像最大 64 层
制品元数据最大 64 KB
不支持 Docker Registry V1 API,请使用 Docker 20.10+ 客户端。
如遇到以下错误,请升级 Docker 版本:
Error: image <IMAGE_NAME> not foundFailed to pull image: rpc error: code = Unknown desc = missing signature key如果确实需要使用较老版本的 Docker(17.12 以下),需手动禁用 V1 协议:
配置方式 适用平台 默认值 说明 dockerd --disable-legacy-registryLinux false启动参数方式禁用 V1 daemon.json中设置"disable-legacy-registry": true所有平台 未设置 配置文件方式禁用 V1 注意:Windows/macOS 平台会自动强制使用 V2 协议,无需额外配置。该选项在 Docker 17.12+ 中已移除,因为 V1 支持已被彻底删除。
更多用法
更多 Docker 用法,请查阅 Docker 官方文档。