我想将 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 export或docker 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)
有很多文件和文件夹被提取,所以你最好使用另一个目录。文件夹通常对应于图像层。