如何将转储caching保存到docker-compose版本的不同主机上

当我做一个“docker构build”,需要30米才能完成。 当我重新运行“docker-compose build”的时候,所有东西都被caching了,需要1m才能完成。

我想将这个caching转移到另一台机器。 我以为我可以遍历所有图像在“docker图像”和“docker保存”他们,然后简单地复制tar文件和“docker加载”他们。

没爱。 它似乎得到了很大一部分的caching,但是“docker-compose build”仍然是在Dockerfile中运行的步骤。

我可以在本地重现这一点。 例如:

# Do a docker-compose build (takes 30m): docker-compose build # Verify that a docker-compose build uses cache (takes 1m): docker-compose build # Save all images to /tmp/[IMAGE.TAG].tar: docker images | grep -v REPOSITORY | grep -v '<none>' | awk '{print "docker save "$1" > /tmp/"$1"."$2".tar"}' > ./run-this.sh # Now delete all cache: docker rmi $(docker images -q) docker rm $(docker ps -a -q) # Load in all tar files: for f in /tmp/*.tar; do docker load < $f ; done # Verify docker-compose takes 1m: docker-compose build # Dang. It takes ~15m. It should have taken 1m. # I must not be saving some images! 

如何以编程方式将所有caching从docker-compose构build中保存?

这是非常类似于这样的: 如何将Docker镜像从一台主机复制到另一台上而不需要通过存储库?