我有20张图片被TAR了,现在我想把这些图片加载到另一个系统上。但是,加载本身需要30到40分钟。所有的图像都是相互独立的,所以我相信所有的图像加载应该是并行的。我试过在后台运行加载命令(&)和 wait
直到加载完成,但观察到它正在花费更多的时间。任何帮助在这里是非常感激。
笔记:- 不知道这个选项是什么 -i
到 docker load
命令,我有20张图片被TAR化了,现在我想把这些图片加载到另一个系统上。
为了加快pullingsaving进程,你可以使用下面片段中的想法。
#!/usr/bin/env bash
TEMP_FILE="docker-compose.image.pull.yaml"
image_name()
{
local name="$1"
echo "$name" | awk -F '[:/]' '{ print $1 }'
}
pull_images_file_gen()
{
local from_file="$1"
cat <<EOF >"$TEMP_FILE"
version: '3.4'
services:
EOF
while read -r line; do
cat <<EOF >>"$TEMP_FILE"
$(image_name "$line"):
image: $line
EOF
done < "$from_file"
}
save_images()
{
local from_file="$1"
while read -r line; do
docker save -o /tmp/"$(image_name "$line")".tar "$line" &>/dev/null & disown;
done < "$from_file"
}
pull_images_file_gen "images"
docker-compose -f $TEMP_FILE pull
save_images "images"
rm -f $TEMP_FILE
images - 包含所需的Docker图像名称列表行。
祝您好运!