使用脚本快速通过远程服务器拉取 docker 镜像

现在情况是,在国内 dockerhub 无法正常访问,之前还能拉取镜像,现在拉取镜像都拉不了,阿蛮君也不知道什么情况。

但是又发现腾讯云服务器似乎拉得挺快,于是有了通过服务器拉取镜像,然后将镜像拷贝到本地并加载的想法。

手动操作太麻烦,将操作写成了脚本,需要的自取,替换相关变量即可使用。

#/bin/bash
#set -x
# 定义变量
image_name=$1
user=root
password="123456"
host=localhost

tmp_dir="/tmp"
tmp_img_name="tmp.tar"

# 下载镜像
sshpass -p $password ssh $user@$host "cd $tmp_dir && rm -rf $tmp_img_name && docker pull $1 && docker save $1 -o $tmp_img_name"
# 拷贝镜像
sshpass -p $password scp $user@$host:$tmp_dir/$tmp_img_name $tmp_dir
# 加载镜像
docker load -i $tmp_dir/$tmp_img_name && rm -rf $tmp_dir/$tmp_img_name
# 删除远程镜像
sshpass -p $password ssh $user@$host "cd $tmp_dir && rm -rf $tmp_img_name && docker rmi -f $1"

将脚本命名为 docker-pull.sh,并放在 /usr/bin 目录下。

使用效果如图:

649474f393021

阅读剩余
THE END