Docker は、アプリケーションの構築、公開、実行に使用できるオープンソースのコンテナー テクノロジーです。 Docker イメージを使用すると、ユーザーは事前に構築されたアプリケーションやコンテナ環境を簡単かつ迅速にダウンロードしてインストールできます。
Docker イメージは複数のレイヤー (レイヤー) で構成されており、各レイヤーにはファイル システムのスナップショットが含まれています。ユーザーが Docker イメージをプルするとき、実際には Docker レジストリからイメージのすべてのレイヤーを取得し、それらを組み合わせて完全な Docker イメージを構築します。
それでは、Docker イメージのローカル ストレージの場所はどこでしょうか?この記事では詳しく紹介していきます。
まず、現在のローカル Docker イメージ リストを表示する必要があります。ターミナルに次のコマンドを入力します。
docker images
実行後、イメージ ID、イメージ名、イメージ ラベル、イメージ サイズ、その他の情報を含む、マシン上のすべての Docker イメージのリストが表示されます。次の図に示すように:
#上の図からわかるように、各イメージには一意の ID、名前、およびいくつかのタグ (バージョンとも呼ばれます) があります。このうち、REPOSITORYフィールドはイメージの名前を表し、TAGフィールドはイメージのラベルを表し、IMAGE IDフィールドはイメージの一意の識別子です。
Docker では、各イメージは複数のレイヤー (レイヤー) で構成されます。したがって、ユーザーが Docker イメージをダウンロードまたはビルドすると、実際にはイメージのすべてのレイヤーがローカル ストレージにダウンロードされます。
Linux システムでは、Docker イメージは実際には /var/lib/docker
ディレクトリに保存されます。ターミナルに次のコマンドを入力します。
sudo ls -l /var/lib/docker/
実行後、ターミナルには /var/lib/docker/ ディレクトリ内のすべてのファイルとフォルダーのリストが表示されます。このうち、/var/lib/docker/image
フォルダーは、Docker がイメージを保存する主な場所です。以下の図に示すように:
/var/lib/docker/image/overlay2/imagedb/content/sha256
ディレクトリに、すべての既存のダウンロードされた Docker イメージ (イメージ ID で名前が付けられます)。これはすべてのレイヤーの保存場所です。各イメージ ID ディレクトリには、このレイヤーの保存場所を表す「real」または「diff」という名前のファイルがあります。
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 イメージの各レイヤーがどこに保存されているかを大まかに推測できます。
上記のコマンドを使用すると、ユーザーは Linux システムでローカルに保存された Docker イメージを表示できます。 Docker イメージのレイヤーは、イメージ ID をフォルダー名として /var/lib/docker/image/overlay2/imagedb/content/sha256
ディレクトリに保存されます。各レイヤーはそれぞれ「実際の」ファイルまたは「差分」ファイルに保存されます。
ミラーリングの各レイヤーの保存場所については、dockerhistory
コマンドを実行してレイヤーの保存場所を表示し、出力結果でレイヤーの説明情報を探すことができます。レイヤーの保存場所を大まかに推測します。
Docker イメージとコンテナーを使用する場合、Docker イメージの保存場所を理解すると、ローカルのストレージ領域をより適切に管理したり、Docker イメージとコンテナーをバックアップおよび復元したりできるようになります。
以上がDocker イメージがプルされて配置された場所を確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。