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. 

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ářů.