Docker “怎么做?”;码头装卸货;对于多个tar文件
我有一个.tar docker图像文件列表,我尝试过使用下面的命令加载docker图像Docker “怎么做?”;码头装卸货;对于多个tar文件,docker,docker-compose,Docker,Docker Compose,我有一个.tar docker图像文件列表,我尝试过使用下面的命令加载docker图像 docker load-i*.tar docker加载-i alldockerimages.tar 其中alldockerimages.tar包含所有单独的tar文件 让我知道如何加载多个tar文件。首先,我尝试使用您首先描述的glob表达式方法: # download some images to play with docker pull alpine docker pull nginx:alpine
docker load-i*.tar
docker加载-i alldockerimages.tar
alldockerimages.tar
包含所有单独的tar文件
让我知道如何加载多个tar文件。首先,我尝试使用您首先描述的glob表达式方法:
# download some images to play with
docker pull alpine
docker pull nginx:alpine
# stream the images to disk as tarballs
docker save alpine > alpine.tar
docker save nginx:alpine > nginx.tar
# delete the images so we can attempt to load them from scratch
docker rmi alpine nginx:alpine
# issue the load command to try and load all images at once
cat *.tar | docker load
不幸的是,这只会导致加载alpine.tar
。我(可能是错误的)理解是glob表达式将被扩展,并最终导致对glob表达式扩展到的每个文件运行docker load
命令
因此,必须使用shellfor
循环按顺序加载所有tarball:
for f in *.tar; do
cat $f | docker load
done
使用中描述的脚本保存或加载图像。就你的情况来说
./save-load-docker-images.sh load -d <directory-location>
/save-load-docker-images.sh load-d
使用xargs:
ls-1*.tar | xargs--如果为空则不运行-L 1 docker load-i
(以前的版本取消了-i标记为“docker load”。我使用以下命令:
mkdir-p myFolder&&tar xvf BigFileWithManyImages.tar-C$&&f in$/images/*.tar.gz;do docker load-i$f;完成1
在末尾添加一个-i
,这样就可以了。另外,如果需要以root用户身份运行docker,则在docker之前添加sudo
。这就像一个符咒