如果解压缩了映像tar,则Docker Load无法正常工作

Nis*_*ron 6 docker

我正在使用Docker版本,

客户端:版本:17.12.1-ce API版本:1.35 Go版本:go1.9.4 Git提交:3dfb8343b139d6342acfd9975d7f1068b5b1c3d3内置:Tue Apr 3 23:37:44 2018 OS / Arch:linux / amd64

服务器:引擎:版本:17.12.1-ce API版本:1.35(最低版本1.12)Go版本:go1.9.4 Git提交:7390fc6 / 17.12.1-ce内置:Tue Apr 3 23:38:52 2018 OS / Arch :linux / amd64实验性:false

我使用docker save在tar中获取图像。解压缩tar图像,然后再次压缩到tar文件。码头工人负载不起作用。它给出以下错误;打开/ var / lib / docker / tmp / docker-import-776730007 / tomcat / json:没有这样的文件或目录

重现步骤:

docker pull tomcat:latest
sudo docker save tomcat:latest > /tmp/docker/tomcat_latest.tar
sudo tar -C /tmp/docker/tomcat -xvf /tmp/docker/tomcat_latest.tar
sudo tar czf /tmp/docker/tomcat_latest.tar /tmp/docker/tomcat_latest
sudo docker load -i /tmp/docker/tomcat_latest.tar

open /var/lib/docker/tmp/docker-import-776730007/tomcat/json: no such file or directory
Run Code Online (Sandbox Code Playgroud)

尝试使用;

cat tomcat_tar.tar | docker import - tomcat:latest
Run Code Online (Sandbox Code Playgroud)

但它会创建一个新的tomcat图像。但是我不想有一个新的tomcat图像。

如果我不解压缩tar文件,然后继续执行docker加载,则它可以工作。但是我想解压缩tar图像。我了解解压缩图像会改变图像的结构。有没有更安全的命令来解压缩docker映像,或者docker保存如何在内部创建tar文件。