ホームページ  >  記事  >  運用・保守  >  Dockerコンテナにファイルをコピーする方法

Dockerコンテナにファイルをコピーする方法

PHPz
PHPzオリジナル
2023-04-10 14:14:156808ブラウズ

クラウド コンピューティングの急速な発展に伴い、Docker は多くの企業やクラウド サービス プロバイダーにとっての標準導入プラットフォームになりました。 Docker コンテナを使用する場合、多くの場合、ホストとコンテナの間でファイルを転送する必要があるため、ファイルのコピーが必要なスキルとなります。この記事では、Dockerコンテナにファイルをコピーする方法を紹介します。

1. docker cp コマンドを使用する

Docker は、ホストとコンテナーの間でファイルをコピーできる特別なコマンド docker cp を提供します。具体的な使用法は次のとおりです。

docker cp <src_path> <container_id>:<dest_path>
docker cp <container_id>:<src_path> <dest_path>

このうち、<src_path><dest_path> はそれぞれ送信元パスと宛先パスを表します。 ;container_id> はコンテナ ID を表します。

たとえば、ホスト内のファイル

/home/user/file.txt をコンテナ内の /var/www/ ディレクトリにコピーするには、次のようにします。次のコマンドを実行します:

docker cp /home/user/file.txt <container_id>:/var/www/
同様に、コンテナ内のファイル

/var/log/nginx/access.log をホストの /home/user にコピーする場合/ ディレクトリで、次のコマンドを実行できます:

docker cp <container_id>:/var/log/nginx/access.log /home/user/

<dest_path>/ で終わる場合、それは、ターゲット パスはディレクトリです。この時点では、ターゲット パスが存在することを確認する必要があります。 <dest_path>/ で終わっていない場合は、対象パスがファイルであることを意味します。この場合、対象パスの上位ディレクトリが存在することを確認する必要があります。 。

2. 共有フォルダーを使用する

ファイルを Docker コンテナーにコピーするもう 1 つの方法は、共有フォルダーを使用することです。この方法の前提条件は、コンテナの作成時にホスト ディレクトリがコンテナの内部にマップされる必要があることです。このマッピングは、

-v または --mount を通じて完了できます。オプション:

docker run -v <host_dir>:<container_dir> <image_name>
または

docker run --mount type=bind,source=<host_dir>,target=<container_dir> <image_name>
このうち、

はホスト内のディレクトリを表し、 はホスト内のディレクトリを表します。コンテナ内のディレクトリ。次に、マップされたディレクトリはローカル ディレクトリと同じようにコンテナ内で使用できます。

この場合、転送する必要があるファイルはマッピング ディレクトリに配置するだけで、コンテナ内でアクセスできるようになります。同様に、コンテナ内で生成されたファイルをマップされたディレクトリに配置し、ホスト上でアクセスして処理することもできます。

3. Docker ボリュームの使用

Docker ボリュームを使用することは、ファイルを Docker コンテナーにコピーするもう 1 つの方法です。共有フォルダーと同様に、Docker Volume を使用してコンテナーを作成する場合は、ホスト ディレクトリをコンテナーにマウントする必要があります。違いは、このマウント アクションでは Docker デーモンに標準ボリュームが作成され、このボリュームがコンテナ内のディレクトリに関連付けられることです。これにより、ローカル ファイル システムに依存せずに、ホストとコンテナーの間で効率的なファイル共有が可能になります。

具体的な使用法は次のとおりです。

docker run -v <volume_name>:<container_dir> <image_name>
または

docker run --mount type=volume,source=<volume_name>,target=<container_dir> <image_name>
このうち、

は、標準ボリュームの名前を表します。 Docker デーモン プロセス はコンテナ内のパスを表します。共有フォルダーとは異なり、Docker ボリュームは明示的に作成および削除する必要があります。これは次のコマンドで実行できます:

docker volume create <volume_name>
docker volume rm <volume_name>
最後に、次のコマンドでホストとコンテナの間でファイルをコピーできます:

docker cp <file_path> <container_id>:<container_dir>
docker cp <container_id>:<container_dir> <file_path>
Here,

はローカル パスを表し、 はコンテナ ID を表し、 はコンテナ内のディレクトリを表します。

結論

Docker コンテナを使用するプロセスでは、ファイルのコピーが必要になることがよくあります。この記事では、Docker コンテナーにファイルをコピーする 3 つの方法、つまり docker cp コマンド、共有フォルダー、および Docker ボリュームの使用方法を紹介します。これらの方法にはそれぞれ長所と短所があります。実際には、特定のニーズに基づいて最適な方法を選択する必要があります。

以上がDockerコンテナにファイルをコピーする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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