DockerCLI/docs/reference/commandline/import.md

2.7 KiB
Raw Blame History

import

Import the contents from a tarball to create a filesystem image

Aliases

docker image import, docker import

Options

Name Type Default Description
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Set commit message for imported image
--platform string Set platform if server is multi-platform capable

Description

You can specify a URL or - (dash) to take data directly from STDIN. The URL can point to an archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz) containing a filesystem or to an individual file on the Docker host. If you specify an archive, Docker untars it in the container relative to the / (root). If you specify an individual file, you must specify the full path within the host. To import from a remote location, specify a URI that begins with the http:// or https:// protocol.

The --change option applies Dockerfile instructions to the image that is created. Supported Dockerfile instructions: CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR

Examples

Import from a remote location

This creates a new untagged image.

$ docker import https://example.com/exampleimage.tgz

Import from a local file

Import to docker via pipe and STDIN.

$ cat exampleimage.tgz | docker import - exampleimagelocal:new

Import with a commit message.

$ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new

Import to docker from a local archive.

$ docker import /path/to/exampleimage.tgz

Import from a local directory

$ sudo tar -c . | docker import - exampleimagedir

Import from a local directory with new configurations

$ sudo tar -c . | docker import --change "ENV DEBUG=true" - exampleimagedir

Note the sudo in this example you must preserve the ownership of the files (especially root ownership) during the archiving with tar. If you are not root (or the sudo command) when you tar, then the ownerships might not get preserved.

When the daemon supports multiple operating systems

If the daemon supports multiple operating systems, and the image being imported does not match the default operating system, it may be necessary to add --platform. This would be necessary when importing a Linux image into a Windows daemon.

$ docker import --platform=linux .\linuximage.tar