Docker:如何将Docker镜像解压到本地系统

aru*_*boj 11 linux docker

我想将 Docker 映像(来自 Ubuntu 服务器)提取到我的本地系统(Linux 机器)中。

我运行以下命令

docker exec -it containername_or_ID /bin/bash
Run Code Online (Sandbox Code Playgroud)

我可以使用此命令查看图像,但无法将此图像放入本地系统。

Kon*_*lin 19

为了提取图像内容而不处理很多层,应该首先创建一个容器。如果docker run已经运行,则使用该容器,否则使用docker create. 然后使用docker exportdocker cp

id=$(docker create image:tag)
docker export $id -o image.tar
docker rm $id
Run Code Online (Sandbox Code Playgroud)


小智 17

您可以export为此使用 docker 的工具。docker export将容器的内容输出到 .tar 文件中;

$ docker export container_name > output.tar
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 docker 文档:https : //docs.docker.com/engine/reference/commandline/export/


Let*_*gos 17

这取决于您实际要求的内容。您正在谈论提取图像,但您指的是现有容器。虽然 jbrownwrld 的答案在您的上下文中是正确的,但如果您想提取图像,您可以使用 docker save 。使用以下方法识别图像:

docker image ls
mariadb                 10.3-bionic         92744546933d        4 days ago          343MB
Run Code Online (Sandbox Code Playgroud)

然后输出tar文件(默认格式):

docker save mariadb:10.3-bionic --output mariadb.tar
mkdir mariadb && mv mariadb.tar mariadb && cd mariadb && tar xvf mariadb.tar
Run Code Online (Sandbox Code Playgroud)

有很多文件和文件夹被提取,所以你最好使用另一个目录。文件夹通常对应于图像层。

  • “docker save”的问题是,保存的 tar 将所有层作为 tar 内单独的附加“layer.tar”文件。使用“docker export”可以将它们全部组合在一起。 (3认同)