Docker学習ノートのdocker-save vs docker-export vs docker-commit
4546 ワード
この前はこのいくつかのcommandを忘れて覚えていたので、メモを书いて固めました.
接するパラメータから推測すると,imageに直接接すると,単純なファイルシステムを導出することは不可能である(ミラー自体が階層的に格納されているため)
簡単にテストして
docker loadはこれに一致し、docker imagesにインポートします(履歴付き)
接のパラメータから推測すると、直接containerに接するのは、多分dump rootfsです.
栗を試してみます.
docker importとマッチング
注:docker importの後ろにはdocker exportがエクスポートしたファイル、つまりファイルシステムが接続されているので、インポートしたミラーは履歴なしでdocker history$image_を使用します.nameミラーを表示するレイヤは1つしかありません
commitはsave、load、export、importのいくつかの特性を統合した総合的なコマンドで、主に次のようにします. container現在の読み書きレイヤを保存し、新しいレイヤ に保存するは、ミラーの履歴レイヤとともに、新しいミラー に統合される.
元のミラーが3層ある場合、commitの後に4層あり、最新のレイヤはミラー実行からcommitまでのファイルシステムの変更です
転載先:https://www.cnblogs.com/JetpropelledSnake/p/10518004.html
1.docker save
docker save -h
Usage: docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
--help Print usage
-o, --output Write to a file, instead of STDOUT
接するパラメータから推測すると,imageに直接接すると,単純なファイルシステムを導出することは不可能である(ミラー自体が階層的に格納されているため)
簡単にテストして
docker save -o busybox.tar busybox && mkdir busybox && tar xf busybox.tar -C busybox
tree busybox
busybox
├── 2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749.json
├── 374004614a75c2c4afd41a3050b5217e282155eb1eb7b4ce8f22aa9f4b17ee57
│ ├── VERSION
│ ├── json
│ └── layer.tar
├── manifest.json
└── repositories
docker loadはこれに一致し、docker imagesにインポートします(履歴付き)
docker load -i busybox.tar
2.docker export
docker export -h
Usage: docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
--help Print usage
-o, --output Write to a file, instead of STDOUT
接のパラメータから推測すると、直接containerに接するのは、多分dump rootfsです.
栗を試してみます.
docker run --name container -d busybox
docker export -o busybox.tar container && mkdir busybox && tar xf busybox.tar -C busybox
tree busybox -L 1
busybox
├── bin
├── dev
├── etc
├── home
├── proc
├── root
├── sys
├── tmp
├── usr
└── var
docker importとマッチング
docker import busybox.tar my-busybox:1.0
docker images
# REPOSITORY TAG IMAGE ID CREATED SIZE
# my-busybox 1.0 5bfea374dd5c 3 seconds ago 1.093 MB
注:docker importの後ろにはdocker exportがエクスポートしたファイル、つまりファイルシステムが接続されているので、インポートしたミラーは履歴なしでdocker history$image_を使用します.nameミラーを表示するレイヤは1つしかありません
3.docker commit
docker commit -h /tmp/pkg_debian (debian) choldrim-pc
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
-a, --author Author (e.g., "John Hannibal Smith ")
-c, --change=[] Apply Dockerfile instruction to the created image
--help Print usage
-m, --message Commit message
-p, --pause=true Pause container during commit
commitはsave、load、export、importのいくつかの特性を統合した総合的なコマンドで、主に次のようにします.
元のミラーが3層ある場合、commitの後に4層あり、最新のレイヤはミラー実行からcommitまでのファイルシステムの変更です
docker commit container my-commit-image
docker history my-commit-image
IMAGE CREATED CREATED BY SIZE COMMENT
e86539128c67 5 seconds ago sh 0 B
2b8fd9751c4c 9 weeks ago /bin/sh -c #(nop) CMD ["sh"] 0 B
9 weeks ago /bin/sh -c #(nop) ADD file:9ca60502d646bdd815 1.093 MB
リファレンス
転載先:https://www.cnblogs.com/JetpropelledSnake/p/10518004.html