Docker镜像上传到OSS

若需要将制作的 Docker 镜像上传到 OSS,需要按如下步骤操作。

安装 OSS Docker Registry 2

假设 docker 存储到 OSS 的目录路径为oss://your-bucket/dockers/,利用 Docker Registry 2 官方镜像创建一个私有镜像仓库,需要配置了 OSS 的 Access Key ID, Access Key Secret,Region,Bucket 等信息。

具体安装步骤如下:

i. 在当前目录生成文件 config.yml

version: 0.1
log:
  level: debug
storage:
  oss:
    accesskeyid: your_access_key_id
    accesskeysecret: your_access_key_secret
    region: oss-cn-shenzhen
    bucket: your-bucket
    rootdirectory: dockers
    secure: false
    internal: false
http:
  addr: 0.0.0.0:5000

其中的变量需要替换:

参数

描述

your_access_key_id

阿里云的 access key id

your_access_key_secret

阿里云的 access key secret

your-bucket

阿里云的 bucket

oss-cn-shenzhen

bucket 所在的 region

关于 OSS 配置的详细信息请参见 Docker 官方文档

ii. 运行命令安装

docker pull registry:2
docker run -v `pwd`/config.yml:/etc/docker/registry/config.yml -p 5000:5000 --name registry -d registry:2
  • 注意:region 使用 oss-cn-shenzhen, 表示使用华南1(深圳)region 的 OSS,而后面提交作业也需要提交到相应的 region 才能正常工作。

iii.查看结果

docker ps       #查看运行的container

如果成功安装,可以看到 registry:2

镜像上传 OSS

docker tag myubuntu localhost:5000/myubuntu
docker push localhost:5000/myubuntu

注意:

说明

要用 localhost:5000/ 作为前缀,用其他的字符串无法上传。5000 端口是第(1)步中 -p 5000:5000 中(冒号前的5000)指定的。 您制作的镜像名称为 localhost:5000/myubuntu,而不是 myubuntu。 检验镜像上传是否成功, 可以使用 OSS 控制台查看是否有这个目录:oss://your-bucket/dockers/docker/registry/v2/repositories/myubuntu/,使用 Docker 时,对应参数填写如下: BATCH_COMPUTE_DOCKER_REGISTRY_OSS_PATH:oss://your-bucket/dockers BATCH_COMPUTE_DOCKER_IMAGE:localhost:5000/myubuntu:xxxx (xxxx 为 myubuntu 的版本号)