Docker 制品库
604 字约 2 分钟
登录 CNB Docker 制品库
登录命令如下。如何获取 CNB_TOKEN 请参考创建访问令牌。
docker login docker.cnb.cool -u cnb -p ${CNB_TOKEN}Docker 制品路径规则
制品在发布到某一仓库时,支持两种命名规则
- 同名制品 - 制品路径与仓库路径一致,如:
docker.cnb.cool/${CNB_REPO_SLUG_LOWERCASE} - 非同名制品 - 仓库路径作为制品的命名空间,制品路径=仓库路径/制品名称,如:
docker.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>
推送制品
本地命令行推送
同名制品
docker build -t docker.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}:latest .
docker push docker.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}:latest非同名制品
docker build -t docker.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}/<IMAGE_NAME>:latest .
docker push docker.cnb.cool/${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.cool/<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+ 客户端。较老版本(如 1.13.1)虽然支持 V2 协议,但对于非 Docker Hub 的 Registry 会默认同时生成 V1 和 V2 端点,并在 V2 请求失败时自动回退到 V1,导致请求被拒绝。如果遇到以下错误,请升级 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 用法,请查阅官方文档