ホームページ  >  記事  >  運用・保守  >  Docker イメージがプルされて配置された場所を確認する

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

PHPz
PHPzオリジナル
2023-05-13 18:41:375729ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。