アプリケーション開発やクラウド コンピューティングで Docker が広く使用されるようになったことで、多くのユーザーは、Docker イメージやコンテナーをダウンロードするときに、これらのファイルがどこに保存されるかわからないことに気づきました。この記事では、Dockerでダウンロードしたファイルの保存場所と方法を詳しく解説します。
Docker でダウンロードされたファイルのファイル システム構造
Docker でダウンロードされたファイルの保存場所を理解する前に、まず Docker イメージとコンテナーのファイル システム構造を理解する必要があります。
Docker イメージは、ルート ファイル システムを含む仮想ファイル システムです。 Docker イメージは Union FS テクノロジーを使用しており、イメージ内のさまざまなレイヤーのファイル システムは読み取り専用で、最上位の書き込み可能なレイヤーのみが書き込み可能です。
Docker イメージ ファイル システムのファイル構造は次のとおりです。
/ # 根目录 |-- bin/ # 可执行文件目录 |-- dev/ # 设备文件目录 |-- etc/ # 配置文件目录 |-- home/ # 用户根目录 |-- lib/ # 库文件目录 |-- media/ # 可移动设备目录 |-- mnt/ # 挂载目录 |-- opt/ # 可选应用程序目录 |-- proc/ # 进程信息目录 |-- root/ # 系统管理员目录 |-- run/ # 运行时文件目录 |-- sbin/ # 系统可执行文件目录 |-- srv/ # 服务目录 |-- sys/ # 系统文件目录 |-- tmp/ # 临时文件目录 |-- usr/ # 用户程序目录 |-- var/ # 可变数据目录 `-- docker/ # Docker自身用目录
Docker がコンテナを起動すると、アプリケーションの実行時に必要な新しいファイルとデータを保存するために、読み取り/書き込み可能なレイヤーがイメージの上部に追加されます。この書き込み可能なレイヤーは、コンテナーのファイル システムの一部です。
Docker コンテナ ファイル システムのファイル構造は次のとおりです。
/ # 根目录 |-- bin/ # 可执行文件目录 |-- dev/ # 设备文件目录 |-- etc/ # 配置文件目录 |-- home/ # 用户根目录 |-- lib/ # 库文件目录 |-- media/ # 可移动设备目录 |-- mnt/ # 挂载目录 |-- opt/ # 可选应用程序目录 |-- proc/ # 进程信息目录 |-- root/ # 系统管理员目录 |-- run/ # 运行时文件目录 |-- sbin/ # 系统可执行文件目录 |-- srv/ # 服务目录 |-- sys/ # 系统文件目录 |-- tmp/ # 临时文件目录 |-- usr/ # 用户程序目录 |-- var/ # 可变数据目录 `-- docker/ # Docker自身用目录
Docker でダウンロードしたファイルの保存場所
Docker でダウンロードしたファイルはイメージに保存されますまたはコンテナ 書き込み可能層では、これらのファイルをコンテナ内で使用したり、コンテナからホスト ファイル システムにエクスポートしたりできます。
ここでは、ファイルのダウンロードの例とその検索方法をいくつか示します。
Docker イメージを実行するとき、Dockerfile の ADD または COPY 命令を使用して、ファイルをイメージに追加できます。
ADD 命令の形式は次のとおりです。
ADD source destination
ここで、ソースはホスト内のファイルまたはディレクトリ、宛先は Docker イメージ内のディレクトリです。
COPY 命令の形式は次のとおりです。
COPY source destination
ここで、ソースはホスト内のファイルまたはディレクトリ、宛先は Docker イメージ内のディレクトリです。
たとえば、次の Dockerfile は、index.html ファイルをホストからイメージ内の /var/www ディレクトリにコピーします:
FROM nginx COPY index.html /var/www/
実行時に、Docker の docker Inspection コマンドを使用できます。このファイルを見つけるには:
$ docker inspect [imageID] | grep "/var/www/index.html"
Docker コンテナにファイルをダウンロードするには、wget、curl、scp、その他のコマンドの使用など、さまざまな方法があります。または、ADD および COPY 命令を使用してホスト マシンからファイルをコピーすることもできます。
wget を使用してファイルをコンテナーにダウンロードします:
$ docker run -it ubuntu wget http://example.com/file.txt
次の手順は、wget を使用してファイルをコンテナーにダウンロードします:
Ubuntu コンテナーを作成します:
$ docker run -it ubuntu
wget をインストールします:
$ apt-get update $ apt-get install wget
wget を使用してファイルをダウンロードします:
$ wget http://example.com/file.txt
Docker の docker cp コマンドを使用してファイルをコンテナからホストにコピーします:
$ docker cp [containerID]:/file.txt .
curl を使用してファイルをコンテナにダウンロードします:
Google のロゴをダウンロードする例を取り上げます:
$ docker run -it ubuntu curl -o google_logo.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
ADD および COPY 命令を使用して、ホストからコンテナにファイルをコピーします:
画像と同様、Docker の ADD および COPY 命令を使用して、ホストからコンテナにファイルをコピーすることもできます。これらのファイルは、コンテナーのローカルの書き込み可能なレイヤーに保存されます。
これは、ADD 命令を使用してホストからコンテナーにファイルをコピーする Dockerfile の例です:
FROM ubuntu ADD file.txt /app/
実行時に、Docker の docker Inspection コマンドを使用してこのファイルを見つけることができます:
$ docker inspect [containerID] | grep "/app/file.txt"
概要
Docker でダウンロードされたファイルは、コンテナ内の対応するイメージまたは書き込み可能なレイヤーに保存されます。ファイルは、Docker の指示または一般的なツールを使用して、コンテナからダウンロードまたはコピーできます。これらの場所とメソッドは比較的簡単に習得できるため、Docker を使用するときにこれらの問題についてあまり心配する必要はありません。
以上がDockerでダウンロードしたファイルの保存場所と方法を詳しく紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。