命令行实用程序有效地复制“docker save”,但它只保存输出存档中的图像的最后一层。
d-save-last的Python项目详细描述
docker save last命令行实用程序
这是一个有效地复制docker save
的命令行实用程序,只是它将只保存输出存档中映像的最后一层。
这在与实验性的docker build --squash
选项结合使用时特别有用,因为它允许您仅在基本映像顶部导出更改,而不在输出存档中导出整个基本映像文件系统。
这意味着在文件大小上有巨大的节省。
关于这个问题的一般性讨论可以在这里找到: https://github.com/moby/moby/issues/8039
安装
使用pip安装:
pip install d-save-last
所需依赖项
docker
已安装,在路径上,无需sudo即可使用。
用法
典型用法如下d-save-last -o ./path/to/output.tar YOUR_IMAGE_ID
参数和选项与docker save
相同。请参见docker save --help
。
$ docker save -h
Usage: docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
-o, --output string Write to a file, instead of STDOUT
它是如何工作的?
此实用程序使用来自https://github.com/brthor/dind-save的docker映像中的特殊docker
Docker映像包含Docker守护进程的一个版本,其中包含从https://github.com/brthor/engine
该实用程序在容器中启动dind-save
映像,并通过TCP连接到其Docker守护进程。
注意事项
这目前只在使用overlay2存储驱动程序的主机上测试。任何其他存储驱动程序几乎肯定都不会工作。
目前只支持docker版本18.09。添加新版本需要更改docker守护进程和
dind-save
映像存储库。如果您希望为您的目的添加新版本,请打开问题。
如果有任何问题,并且您希望使用此实用程序,请在这里随意贡献。拉取请求将被快速审查。