| --- |
| title: "import" |
| description: "The import command description and usage" |
| keywords: "import, file, system, container" |
| --- |
| |
| <!-- This file is maintained within the docker/cli GitHub |
| repository at https://github.com/docker/cli/. Make all |
| pull requests against that repo. If you see this file in |
| another repository, consider it read-only there, as it will |
| periodically be overwritten by the definitive file. Pull |
| requests which include edits to this file in other repositories |
| will be rejected. |
| --> |
| |
| # import |
| |
| ```markdown |
| Usage: docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] |
| |
| Import the contents from a tarball to create a filesystem image |
| |
| Options: |
| -c, --change value Apply Dockerfile instruction to the created image (default []) |
| --help Print usage |
| -m, --message string Set commit message for imported image |
| ``` |
| |
| ## 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 will apply `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 will create a new untagged image. |
| |
| ```bash |
| $ docker import http://example.com/exampleimage.tgz |
| ``` |
| |
| ### Import from a local file |
| |
| - Import to docker via pipe and `STDIN`. |
| |
| ```bash |
| $ cat exampleimage.tgz | docker import - exampleimagelocal:new |
| ``` |
| |
| - Import with a commit message. |
| |
| ```bash |
| $ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new |
| ``` |
| |
| - Import to docker from a local archive. |
| |
| ```bash |
| $ docker import /path/to/exampleimage.tgz |
| ``` |
| |
| ### Import from a local directory |
| |
| ```bash |
| $ sudo tar -c . | docker import - exampleimagedir |
| ``` |
| |
| ### Import from a local directory with new configurations |
| |
| ```bash |
| $ 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. |