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 の基本コマンド |