GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak kopírovat soubory mezi hostitelem a kontejnerem Docker

Příkaz Docker cp je užitečný nástroj, který umožňuje kopírovat soubory a složky mezi kontejnerem a hostitelským systémem.

Pokud chcete zkopírovat soubory z hostitelského systému do kontejneru, měli byste použít příkaz docker cp takto:

docker cp host_source_path container:destination_path

Pokud chcete zkopírovat soubory z kontejneru do hostitelského systému, použijte tento příkaz:

docker cp container:source_path host_destination_path

To může vypadat trochu zastrašující, takže dovolte mi, abych vám to vysvětlil na několika praktických příkladech.

Příklady příkazů Docker cp

Ve svém tutoriálu jsem nainstaloval Docker na Ubuntu. Ale kroky jsou stejné pro všechny distribuce s dockerem.

Doufám, že víte, jak spustit kontejner dockeru, protože budete potřebovat spuštěný kontejner.

Nejprve uveďte své běžící kontejnery pomocí docker ps příkaz:

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

Musíte znát buď ID kontejneru, nebo název kontejneru. V mém případě je název kontejneru dockeru ubu_container . a ID kontejneru je 8353c6f43fba .

Pokud chcete ověřit, že soubory byly úspěšně zkopírovány, můžete zadat svůj kontejner následujícím způsobem a poté použít běžné příkazy Linuxu:

docker exec -it ubu_container bash

1. Zkopírujte soubory z hostitelského systému do kontejneru docker

Kopírování pomocí docker cp je podobné příkazu copy v Linuxu.

Chystám se zkopírovat soubor s názvem a.py do adresáře home/dir1 v kontejneru.

docker cp a.py ubu_container:/home/dir1

Pokud je soubor úspěšně zkopírován, na obrazovce neuvidíte žádný výstup. Pokud cílová cesta neexistuje, zobrazí se chyba:

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

Pokud cílový soubor již existuje, bude bez varování přepsán.

Místo názvu kontejneru můžete také použít ID kontejneru:

docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs Start vs Create:Rozdíl je vysvětlen Pro začátečníka dockeru mohou být pojmy jako docker start, docker run a docker create matoucí. Tento článek vysvětluje rozdíl na příkladech. Linux HandbookAbhishek Prakash

2. Zkopírujte soubory z kontejneru dockeru do hostitelského systému

Příkaz docker cp se spouští pouze v hostitelském systému. Nemůžete jej spustit v kontejneru.

I když chcete zkopírovat soubory z kontejneru dockeru do hostitelského systému, musíte být v hostitelském systému a použít příkaz následujícím způsobem:

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

3. Kopírování adresářů mezi kontejnerem a hostitelským systémem

Pokud chcete zkopírovat adresář v Linuxu pomocí příkazu cp, budete muset použít rekurzivní volbu -r.

Ale v příkazu docker cp žádné takové možnosti nepotřebujete. Stejný příkaz funguje pro kopírování souborů i složek.

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

4. Zkopírujte soubory a adresáře s původními atributy

Režim archivace můžete použít při kopírování s volbou -a. Díky tomu můžete zkopírovat všechna oprávnění k souboru, UID a GID původního souboru.

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

To je asi tak všechno. Uvidíte, jak snadné je kopírovat soubory mezi hostitelem a kontejnerem pomocí příkazu docker cp.

Pokud máte nějaké dotazy nebo návrhy, dejte mi vědět v systému komentářů.


Docker
  1. Jak nainstalovat a hostovat server OpenVPN pomocí Dockeru

  2. Jak nainstalovat Docker a nasadit LAMP Stack

  3. Jak sdílet data mezi kontejnery Docker

  1. Jak a proč používat vzdáleného hostitele dockeru

  2. Jak kopírovat soubory mezi Kubernetes Pods a vaším počítačem

  3. Jak připojit hostitelský adresář do kontejneru Docker

  1. Jak vytvořit Docker Image z kontejneru a Dockerfile

  2. Jak získat přístup k síťovému jmennému prostoru Docker Container z hostitele

  3. Jak zálohovat a obnovovat kontejnery Docker