ホームページ  >  記事  >  運用・保守  >  Dockerでファイルをコピーするにはどうすればよいですか?どこにコピーしますか?

Dockerでファイルをコピーするにはどうすればよいですか?どこにコピーしますか?

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

Docker は、アプリケーションを作成、デプロイ、実行するためのオープン ソース プラットフォームです。その中心的なアイデアは、アプリケーションとその依存関係をすべてコンテナーにパッケージ化し、さまざまな環境で簡単にデプロイして実行できるようにすることです。 Docker を使用するプロセスでは、ファイルをコンテナーにコピーする必要があることがよくありますが、この記事では、Docker でファイルをコピーする方法について説明します。

最初で最も一般的に使用される方法は、Docker の cp コマンドを使用してファイルをコピーする方法です。 cp コマンドの構文は次のとおりです。

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

このうち、CONTAINER はコンテナの名前または ID、SRC_PATH はコンテナ内のソース ファイル パス、DEST_PATH はコンテナ外のターゲット ファイル パスです。容器。 DEST_PATH が「-」に設定されている場合は、画面への出力を意味します。

たとえば、ローカル ファイル /root/abc.txt を mycontainer という名前のコンテナにコピーし、/tmp/def.txt として保存する必要があるとします。その後、次のコマンドを実行できます。

docker cp /root/abc.txt mycontainer:/tmp/def.txt
同様に、コンテナ内のファイル /var/log/app.log をローカルの /tmp ディレクトリにコピーする必要がある場合は、次のコマンドを実行できます。

docker cp mycontainer:/var/log/app.log /tmp
Docker cp コマンド。Dockerfile の ADD または COPY 命令を使用してファイルをコピーすることもできます。 ADD 命令と COPY 命令は両方とも、ソース ファイルをビルド コンテキスト (つまり、Dockerfile が配置されているディレクトリ) からコンテナーにコピーできます。

ADD コマンドの構文は次のとおりです。

ADD [--chown=<user>:<group>] <src>... <dest>
このうち --chown パラメータは、ファイルをコピーするときにファイルを設定するユーザーとグループを示します。パラメーターが指定されていない場合は、Dockerfile が配置されているユーザーとグループが使用されます。

COPY 命令の構文は次のとおりです。

COPY [--chown=<user>:<group>] <src>... <dest>
ADD 命令と同様に、--chown パラメータを使用してファイルの所有権を指定することもできます。

たとえば、次の Dockerfile では ADD 命令を使用して、ローカル ファイル app.jar をコンテナ内の /app ディレクトリにコピーします。

FROM ubuntu
ADD app.jar /app/app.jar
同様に、COPY 命令は次の Dockerfile で使用されます。ローカル ディレクトリ conf をコピーするための次の Dockerfile は、コンテナ内の /app/conf ディレクトリにコピーされます:

FROM ubuntu
COPY --chown=user:group conf /app/conf
ADD または COPY 命令を使用する場合、ファイルまたはディレクトリは、コンテナ内のホストのファイル システムを通じてファイル システムに渡されます。ホスト ファイル システム内のファイルまたはディレクトリの所有権が正しくない場合、コピーされたファイルまたはディレクトリにも権限の問題が発生します。

要約すると、Docker からファイルをコピーするには、Docker cp コマンドと、Dockerfile の ADD または COPY コマンドを使用できます。上記の方法により、Docker でファイルのコピー操作を効果的に実行できます。

以上がDockerでファイルをコピーするにはどうすればよいですか?どこにコピーしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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