如何并行加载所有保存的docker镜像?

问题描述 投票:0回答:1

我有20张图片被TAR了,现在我想把这些图片加载到另一个系统上。但是,加载本身需要30到40分钟。所有的图像都是相互独立的,所以我相信所有的图像加载应该是并行的。我试过在后台运行加载命令(&)和 wait 直到加载完成,但观察到它正在花费更多的时间。任何帮助在这里是非常感激。

笔记:- 不知道这个选项是什么 -idocker load 命令,我有20张图片被TAR化了,现在我想把这些图片加载到另一个系统上。

docker parallel-processing load
1个回答
0
投票

为了加快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图像名称列表行。

祝您好运!

© www.soinside.com 2019 - 2024. All rights reserved.