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