Ale wystarczająco chwali się o dokera. W tym artykule omówimy sposób kopiowania plików do iz kontenera do systemu hosta i odwrotnie."
Zacznijmy
Docker CP
Docker CP to narzędzie wiersza poleceń, które pozwala kopiować pliki i katalogi między systemami. Polecenie przyjmuje bardzo prostą składnię, która umożliwia łatwy przepływ pracy.
Składnia polecenia:
Docker CP [Opcje] Kontener: src_path dest_path |-Narzędzie CP skopiuje pliki określone z src_path do desty_path. To pozwala kopiować z kontenera do systemu hosta i odwrotnie.
Kontener może być uruchomiony lub zatrzymany, a polecenie pomyślnie wykonuje operację kopiowania.
Jeśli określono katalog, polecenie skopiuje rekurencyjnie do określonego miejsca docelowego.
Aby skopiować pliki z systemu hosta do kontenera, możesz użyć składni:
$ Docker CP host_path Container_id: ścieżkaTa sama składnia polecenia ma zastosowanie, gdy chcesz kopiować pliki z kontenera do systemu hosta:
$ Docker CP Container_id: Src_path host_pathZobaczmy, jak możemy to osiągnąć za pomocą praktycznych przykładów.
Uzyskaj bieżące pojemniki
Pierwszym krokiem jest uzyskanie nazwisk i identyfikatorów działających kontenerów. Możemy to zrobić z poleceniem Docker PS.
$ Docker PsPo uzyskaniu pojemnika i nazwy lub identyfikatora możemy kontynuować. Możesz uzyskać identyfikator w kolumnach identyfikatorów kontenera i nazwisk.
Skopiuj pliki z systemu hosta na kontener
Załóżmy, że mamy plik o nazwie kopie zapasowe.smoł na komputerze systemu hosta i chcesz skopiować go do kontenera Debian11.
Możemy uruchomić polecenie:
Docker CP ~/Desktop/Bacups.Tar Debian11:/HomePowyższe polecenie skopiuje kopie zapasowe.plik smoły w katalogu domowym określonego kontenera.
Możemy sprawdzić, czy plik istnieje, uruchamiając polecenie:
$ Docker Exec -Ti debian11 /bin /bashPolecenie powyżej powinno umożliwić zalogowanie się do pojemnika i odrodzenie skorupy bash.
Możesz teraz wymienić pliki i katalogi w kontenerze jako:
root@f657EA827600: /# ls -la /homeWidzimy, że plik został pomyślnie skopiowany do kontenera.
Jeśli chcesz użyć identyfikatora kontenera, możesz uruchomić polecenie:
Docker CP ~/Desktop/Bacups.TAR F657EA827600:/Strona głównaUWAGA: Jeśli plik o podobnej nazwie istnieje jako określona ścieżka docelowa, polecenie będzie go zastąpić bez podpowiedzi.
Plik kopiowania dokera z kontenera do hosta
Możemy również użyć polecenia do kopiowania plików z kontenera do systemu hosta. Załóżmy na przykład, że chcemy skopiować dzienniki z kontenera do katalogu logów w folderze stacjonarnym hosta.
Możemy uruchomić polecenie:
$ sudo docker cp debian11:/var/log/~/komputer/logsW powyższym poleceniu poinformujemy polecenie Docker CP, aby skopiowało pliki z katalogu /var /log w DEBIAN11 do katalogu Logs w systemie hosta.
Możemy to zweryfikować, uruchamiając polecenie:
$ ls -ls ~/Desktop/LogsDocker CP Preserve Atrybutów
Zauważysz, że po skopiowaniu pliku do systemu hosta Docker nie zachowuje atrybutów, takich jak uprawnienia, UID itp.
Możemy to rozwiązać, dołączając flagę -A w poleceniu Docker CP.
$ Docker CP -a Host_path Contener: ŚcieżkaPrzykładem jest jak pokazano:
Sudo Docker CP -a debian11:/var/log/~/komputer/logsWidzimy, że uprawnienia są podobne do jednego z skopiowanych plików w kontenerze.
Wniosek
W tym samouczku nauczyłeś się używać polecenia Docker CP do kopiowania plików do iz kontenera Docker do systemu hosta i odwrotnie.
Dziękuje za przeczytanie!!