Docker イメージがプルされて配置された場所を確認する

PHPz
リリース: 2023-05-13 18:41:37
オリジナル
5787 人が閲覧しました

Docker は、アプリケーションの構築、公開、実行に使用できるオープンソースのコンテナー テクノロジーです。 Docker イメージを使用すると、ユーザーは事前に構築されたアプリケーションやコンテナ環境を簡単かつ迅速にダウンロードしてインストールできます。

Docker イメージは複数のレイヤー (レイヤー) で構成されており、各レイヤーにはファイル システムのスナップショットが含まれています。ユーザーが Docker イメージをプルするとき、実際には Docker レジストリからイメージのすべてのレイヤーを取得し、それらを組み合わせて完全な Docker イメージを構築します。

それでは、Docker イメージのローカル ストレージの場所はどこでしょうか?この記事では詳しく紹介していきます。

  1. Docker イメージ リストの表示

まず、現在のローカル Docker イメージ リストを表示する必要があります。ターミナルに次のコマンドを入力します。

docker images
ログイン後にコピー

実行後、イメージ ID、イメージ名、イメージ ラベル、イメージ サイズ、その他の情報を含む、マシン上のすべての Docker イメージのリストが表示されます。次の図に示すように:

Docker images

#上の図からわかるように、各イメージには一意の ID、名前、およびいくつかのタグ (バージョンとも呼ばれます) があります。このうち、REPOSITORYフィールドはイメージの名前を表し、TAGフィールドはイメージのラベルを表し、IMAGE IDフィールドはイメージの一意の識別子です。

  1. Docker イメージの保存場所の表示

Docker では、各イメージは複数のレイヤー (レイヤー) で構成されます。したがって、ユーザーが Docker イメージをダウンロードまたはビルドすると、実際にはイメージのすべてのレイヤーがローカル ストレージにダウンロードされます。

Linux システムでは、Docker イメージは実際には /var/lib/docker ディレクトリに保存されます。ターミナルに次のコマンドを入力します。

sudo ls -l /var/lib/docker/
ログイン後にコピー

実行後、ターミナルには /var/lib/docker/ ディレクトリ内のすべてのファイルとフォルダーのリストが表示されます。このうち、/var/lib/docker/image フォルダーは、Docker がイメージを保存する主な場所です。以下の図に示すように:

Docker イメージがプルされて配置された場所を確認する

/var/lib/docker/image/overlay2/imagedb/content/sha256 ディレクトリに、すべての既存のダウンロードされた Docker イメージ (イメージ ID で名前が付けられます)。これはすべてのレイヤーの保存場所です。各イメージ ID ディレクトリには、このレイヤーの保存場所を表す「real」または「diff」という名前のファイルがあります。

  1. イメージ レイヤーの保存場所の確認

Docker イメージの各レイヤーについて、次のコマンドを実行することで保存場所を確認できます:

docker history <image_name>:<tag>
ログイン後にコピー

たとえば、nginx イメージの場合、コマンド

docker history nginx:latest
ログイン後にコピー

を実行すると、次の結果が出力されます。

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
84cf8d0a2e04        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  EXPOSE 80                    0B
<missing>           3 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B
<missing>           3 weeks ago         /bin/sh -c set -x  && apt-get update  && ap…   68.2MB
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=2.1.0.6      0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.16.1     0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B
<missing>           4 weeks ago         /bin/sh -c #(nop) ADD file:7fbfce9f6a99e63a5…   63.2MB
ログイン後にコピー

このうち、各レイヤーの SIZE フィールドは、nginx イメージが占める実際のスペースを示します。層。このコマンドの出力結果の最初の列は、Docker イメージの各レイヤーの ID であり、イメージの各レイヤーを上から下に表します。

このコマンドの出力に基づいて、各レイヤーの具体的な保存場所を確認できます。たとえば、上記のコマンドの出力では、最後の列はレイヤーの説明情報であり、レイヤーの元のコマンドとパラメーターが含まれています。

nginx イメージの最初のレイヤー (ID は「84cf8d0a2e04」) の場合、このレイヤーの CMD は「CMD ["nginx" "-g" "daemon..."」です。これは、 nginx サービス; 以下の各層には、他の構成またはコマンドが含まれています。したがって、Docker イメージの各レイヤーがどこに保存されているかを大まかに推測できます。

  1. 概要

上記のコマンドを使用すると、ユーザーは Linux システムでローカルに保存された Docker イメージを表示できます。 Docker イメージのレイヤーは、イメージ ID をフォルダー名として /var/lib/docker/image/overlay2/imagedb/content/sha256 ディレクトリに保存されます。各レイヤーはそれぞれ「実際の」ファイルまたは「差分」ファイルに保存されます。

ミラーリングの各レイヤーの保存場所については、dockerhistory コマンドを実行してレイヤーの保存場所を表示し、出力結果でレイヤーの説明情報を探すことができます。レイヤーの保存場所を大まかに推測します。

Docker イメージとコンテナーを使用する場合、Docker イメージの保存場所を理解すると、ローカルのストレージ領域をより適切に管理したり、Docker イメージとコンテナーをバックアップおよび復元したりできるようになります。

以上がDocker イメージがプルされて配置された場所を確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート