若需要将制作的 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 的版本号)。