简体   繁体   中英

Docker: How to extract the Docker image into local system

I want to extract the Docker image (from Ubuntu server) into my local system (Linux machine).

I run the following command

docker exec -it containername_or_ID /bin/bash

I am able to view image by using this command, but I am unable to get this image into my local system.

You can use docker's export tool for this. docker export will output the contents of a container into a .tar file;

$ docker export container_name > output.tar

See the docker docs for more information: https://docs.docker.com/engine/reference/commandline/export/

It depends though on what you're actually asking for. You are talking about extracting the image, but you're referring to an existing container. While jbrownwrld's answer is right in your context, if you want to extract an image, you can use docker save for that. Identify the image using:

docker image ls
mariadb                 10.3-bionic         92744546933d        4 days ago          343MB

Then output the tar file (default format):

docker save mariadb:10.3-bionic --output mariadb.tar
mkdir mariadb && mv mariadb.tar mariadb && cd mariadb && tar xvf mariadb.tar

There are lots of files and folders being extracted, so you had better use another directory. The folders generally correspond to the image layers.

In order to extract image contents without dealing with many layers, a container should be created first. If docker run was already run, use that container, otherwise create a stopped container with docker create . Then use docker export or docker cp .

id=$(docker create image:tag)
docker export $id -o image.tar
docker rm $id

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM