GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

ホストとDockerコンテナ間でファイルをコピーする方法

Docker cpコマンドは、コンテナとホストシステム間でファイルやフォルダをコピーできる便利なユーティリティです。

ホストシステムからコンテナにファイルをコピーする場合は、次のようなdockercpコマンドを使用する必要があります。

docker cp host_source_path container:destination_path

コンテナからホストシステムにファイルをコピーする場合は、次のコマンドを使用します。

docker cp container:source_path host_destination_path

それは少し恐ろしいように見えるかもしれないので、いくつかの実際的な例であなたにそれを説明させてください。

Dockercpコマンドの例

私のチュートリアルでは、UbuntuにDockerをインストールしました。ただし、手順はdockerを実行しているすべてのディストリビューションで同じです。

実行中のコンテナーが必要になるため、Dockerコンテナーの実行方法を知っていただければ幸いです。

最初にdockerpsを使用して実行中のコンテナを一覧表示します コマンド:

[email protected]:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8353c6f43fba        775349758637        "bash"              8 seconds ago       Up 7 seconds                            ubu_container

コンテナIDまたはコンテナ名のいずれかを知っている必要があります。私の場合、Dockerコンテナ名は ubu_containerです。 。コンテナIDは8353c6f43fba

ファイルが正常にコピーされたことを確認する場合は、次の方法でコンテナを入力してから、通常のLinuxコマンドを使用できます。

docker exec -it ubu_container bash

1。ホストシステムからDockerコンテナにファイルをコピーします

docker cpを使用したコピーは、Linuxのcopyコマンドに似ています。

a.pyという名前のファイルをコンテナのhome/dir1ディレクトリにコピーします。

docker cp a.py ubu_container:/home/dir1

ファイルが正常にコピーされると、画面に出力は表示されません。宛先パスが存在しない場合は、エラーが表示されます:

[email protected]:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2

宛先ファイルがすでに存在する場合、警告なしに上書きされます。

コンテナ名の代わりにコンテナIDを使用することもできます:

docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs Start vs Create:違いの説明docker初心者にとって、docker start、docker run、dockercreateなどの用語は混乱を招く可能性があります。この記事では、例との違いについて説明します。 LinuxハンドブックAbhishekPrakash

2。 Dockerコンテナからホストシステムにファイルをコピーします

docker cpコマンドは、ホストシステムでのみ実行されます。コンテナ内で実行することはできません。

Dockerコンテナからホストシステムにファイルをコピーする場合でも、ホストシステムにアクセスして、次の方法でコマンドを使用する必要があります。

sudo docker cp ubu_container:/home/dir1/new.txt  /home/abhishek

3。コンテナとホストシステム間でディレクトリをコピーする

Linuxでcpコマンドを使用してディレクトリをコピーする場合は、再帰オプション-rを使用する必要があります。

ただし、docker cpコマンドでは、そのようなオプションは必要ありません。同じコマンドがファイルとフォルダの両方をコピーするために機能します。

docker cp /home/abhishek/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir  /home/abhishek

4。元の属性でファイルとディレクトリをコピーする

オプション-aを使用して、コピー中にアーカイブモードを使用できます。これにより、元のファイルのすべてのファイル権限、UID、およびGIDをコピーできます。

docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path

それについてです。 dockercpコマンドを使用してホストとコンテナー間でファイルをコピーするのがいかに簡単かがわかります。

質問や提案があれば、コメントシステムで知らせてください。


Docker
  1. DockerをインストールしてLAMPスタックをデプロイする方法

  2. ホストディレクトリをDockerコンテナにマウントする方法

  3. Dockerコンテナ間でデータを共有する方法

  1. Dockerを使用してOpenVPNサーバーをインストールしてホストする方法

  2. リモートDockerホストを使用する方法と理由

  3. コンテナと Dockerfile から Docker イメージを作成する方法

  1. podmanとdockerの違い。

  2. Kubernetesポッドとマシン間でファイルをコピーする方法

  3. ホストから Docker コンテナのネットワーク名前空間にアクセスする方法