前言
由于某些不可抗力因素,国内大部分Docker镜像站停止服务,为了能够继续正常拉取Docker镜像,可以利用海外VPS推送镜像到阿里云ARC私有容器镜像仓库,实现在本地服务器登录阿里云ARC私有容器镜像仓库拉取所需的镜像。
在阿里云创建容器镜像仓库实例
省略
在海外VPS上拉取并推送镜像
脚本拉取并推送
运行以下的bash脚本即可实现快速拉取并推送镜像。
注意:这个脚本需要修改很多参数才能正常使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #!/bin/bash
echo "海外服务器拉取镜像脚本" read -p "请输入要拉取的镜像名(例如:nginx:latest): " IMAGE_NAME read -p "请输入要推送的镜像版本号: " IMAGE_TAG
USERNAME="[此处修改用户名]" PASSWORD="[此处修改密码]"
echo "从Docker Hub拉取镜像: $IMAGE_NAME" docker pull $IMAGE_NAME
IMAGE_ID=$(docker images $IMAGE_NAME --format "{{.ID}}")
echo "登录到阿里云私有镜像仓库" echo $PASSWORD | docker login --username=$USERNAME --password-stdin registry.[此处修改实例地域].aliyuncs.com
NEW_IMAGE_NAME="registry.[此处修改实例地域].aliyuncs.com/[此处填写命名空间]/[此处填写仓库名称]:$IMAGE_TAG" echo "重新打标签为: $NEW_IMAGE_NAME" docker tag $IMAGE_ID $NEW_IMAGE_NAME
echo "推送镜像到私有仓库" docker push $NEW_IMAGE_NAME
echo "退出阿里云私有镜像仓库" docker logout registry.[此处修改实例地域].aliyuncs.com
echo "拉取并推送完成!"
|
命令拉取并推送
1 2 3 4 5
| sudo docker pull 镜像名:版本号 sudo docker login --username=用户名 registry.[此处修改实例地域].aliyuncs.com sudo docker tag [ImageId] registry.[此处修改实例地域].aliyuncs.com/[此处填写命名空间]/[此处填写仓库名称]:[镜像版本号] sudo docker push registry.[此处修改实例地域].aliyuncs.com/[此处填写命名空间]/[此处填写仓库名称]:[镜像版本号] sudo docker logout registry.[此处修改实例地域].aliyuncs.com
|