3

我想将 docker 映像保存为 rootfs 格式(例如由 组成的目录/etc /var ...),就像它所做的docker export那样。也docker save不能满足我的需要,因为它保存了图像的层而不是它们安装在一起的目录。但我不想使用docker export,因为它仅在使用此映像的容器运行时才有效。现在我有一个包含大约 1000 个条目的图像列表,如何在不先在每个图像上启动容器的情况下将每个图像保存到 rootfs?

4

3 回答 3

2

要扩展@lucasvc 的答案,这里有一个单行代码:

docker export $(docker create <image id>) --output="latest.tar"
于 2020-05-28T08:01:07.923 回答
2

引用@tgogos 评论

遍历您的图像,用于docker create ...创建一个容器(创建它不会启动),然后使用docker export ...并最终清理docker rm ...

于 2019-05-28T08:50:25.793 回答
1

我刚刚开源了 undocker,它可以将 docker 镜像层转换为 rootfs tarball:

$ skopeo copy docker://docker.io/busybox:latest docker-archive:busybox.tar
$ undocker busybox.tar - | tar -tv
drwxr-xr-x 0/0               0 2021-05-17 22:07 bin/
-rwxr-xr-x 0/0         1149184 2021-05-17 22:07 bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/[[ link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/acpid link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/add-shell link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/addgroup link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/adduser link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/adjtimex link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/ar link to bin/[
hrwxr-xr-x 0/0               0 2021-05-17 22:07 bin/arch link to bin/[
...
于 2021-05-23T21:20:08.680 回答