ホームページ  >  記事  >  運用・保守  >  docker save と docker export の違いは何ですか?

docker save と docker export の違いは何ですか?

王林
王林転載
2020-06-17 17:44:084185ブラウズ

docker save と docker export の違いは何ですか?

まず、docker save と docker export についてそれぞれ説明しましょう。

docker save

docker のコマンド ライン インターフェイスの設計は次のとおりです。非常にエレガントで、最後に --help を追加すると、多くのコマンドのヘルプを直接表示できます。

docker save のヘルプは次のとおりです:

>docker save --help
Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

コマンド ライン ヘルプからわかるように、docker save は 1 つ以上のイメージをパッケージ化して保存するために使用されるツールです。

たとえば、postgres と mongo をミラー ライブラリにパッケージ化したい場合は、次のように実行できます:

docker save -o images.tar postgres:9.6 mongo:3.4

パッケージ化されたimages.tarには、postgres:9.6とmongo:3.4の2つのイメージが含まれています。 。

コマンド ライン パラメーターではイメージを指定する必要がありますが、コンテナーは実際にパッケージ化できます。例:

>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3623943d369f        postgres:9.6        "docker-entrypoint..."   3 hours ago         Up 3 hours          5432/tcp            postgres
>docker save -o b.tar postgres
>docker save -o c.tar postgres:9.6
>ls -al
-rwxrwxrwx 1 root root 277886464 8月  26 14:40 b.tar
-rwxrwxrwx 1 root root 277886464 8月  26 14:41 c.tar

上記のコマンドからわかるように、b.tar と c。 tar はまったく同じです。これは、docker save がコンテナを指定した場合、docker save はコンテナの背後にイメージを保存することを示しています。

dockerload を使用してパッケージ化されたイメージをロードします (例:

docker load -i images.tar

上記のコマンドは、postgres:9.6 と mongo:3.4 をロードします。ローカル イメージ ライブラリにこれら 2 つのイメージがすでに存在する場合)そして上書きされます。

docker save のアプリケーション シナリオは、アプリケーションが docker-compose.yml を使用して配置された複数のイメージの組み合わせであるが、デプロイするクライアント サーバーが外部ネットワークに接続できない場合です。現時点では、 docker save を使用して使用するイメージをパッケージ化し、それをクライアント サーバーにコピーし、 docker load を使用してロードできます。

dockerexport

いつものように、dockerexport のヘルプを確認してください:

>docker export --help
Usage:  docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

ヘルプからわかるように、dockerexport は次の目的で使用されます。コンテナ ファイルを変換する システムはパッケージ化されています。例:

docker export -o postgres-export.tar postgres

docker import はコンテナを指定する必要があり、docker save のようにイメージやコンテナを指定することはできません。

docker import を使用してパッケージ化されたコンテナをロードします。例:

docker import postgres-export.tar postgres:latest

上記のコマンドからわかるように、docker import はコンテナのインポ​​ート後にイメージになり、[復元先] ではありません。コンテナ。

もう 1 つのポイントは、docker import では IMAGE[:TAG] を指定できることです。これは、イメージの新しい名前を指定できることを意味します。同じ名前のイメージがローカル イメージ ライブラリにすでに存在する場合、元のイメージの名前が削除され、新しいイメージに割り当てられます。元のイメージはゴーストとなり、IMAGE ID でのみ操作できます。

docker エクスポートの応用シナリオは、主に基本的なイメージを作成するために使用されます。たとえば、ubuntu イメージからコンテナーを起動し、ソフトウェアをインストールしていくつかの設定を行い、それを docker エクスポートを使用して保存します。基本的なイメージとして。次に、このイメージを他の人に配布して、基本的な開発環境などに使用します。

docker save と docker export の違い

  • docker save はイメージ (image) を保存し、docker export はコンテナ (container) を保存します。 ;

  • #docker load はイメージ パッケージのロードに使用され、docker import はコンテナ パッケージのロードに使用されますが、両方ともイメージに復元されます。;

  • docker load はロードされたイメージの名前を変更できませんが、docker import はイメージの新しい名前を指定できます。

推奨チュートリアル:

docker

以上がdocker save と docker export の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。