docker import

説明

tarball の内容をインポートしてファイルシステムイメージを生成します。

利用方法

$ docker import [オプション] file|URL|- [REPOSITORY[:TAG]]

追加説明

引数にはURLが指定できます。 また-(ダッシュ)を指定するとSTDINからデータを直接入力できます。 URLには、ファイルシステムを含んだアーカイブ(.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz)を指定するか、Docker ホスト上の個別ファイルを指定します。 アーカイブを指定した場合、Docker はそれをコンテナー内において、/(ルート)からの相対位置に伸張(展開)します。 個別のファイルを指定する場合には、ホスト内のフルパスの指定でなければなりません。 リモートからインポートを行う場合、http://またはhttps://プロトコルによるURIを指定します。

--changeオプションは、生成されたイメージに対してDockerfile命令を適用します。 サポートされているDockerfile命令は以下のとおりです。 CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR

本コマンドの利用例については、以下に示す 利用例の節 を参照してください。

オプション

名前/省略形 デフォルト 説明
--change , -c 生成したイメージに対して Dockerfile 命令を適用します。
--message , -m インポートしたイメージに対するコミットメッセージを設定します。
--platform API 1.32 以上
サーバーがマルチプラットフォームに対応している場合に、プラットフォームを指定します。

利用例

リモートからのインポート

以下は、新たなタグなしのイメージを生成します。

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

ローカルファイルからのインポート

パイプとSTDINを通じてインポートします。

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

コミットメッセージをつけてインポートします。

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

ローカルのアーカイブからインポートします。

$ docker import /path/to/exampleimage.tgz

ローカルディレクトリからのインポート

$ sudo tar -c . | docker import - exampleimagedir

新たな設定を加えて、ローカルディレクトリからのインポート

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

上の例においてはsudoを用いています。 tar によりアーカイブを生成する際には、ファイルの所有権(特に root 所有権)は保持しておかなければなりません。 tar 処理の際に root(sudo コマンド)ではない場合、所有権が保持されないことになります。

上位コマンド

コマンド 説明
docker Docker CLI の基本コマンド