Docker CP

Docker CP
”Det er uten tvil at Docker har revolusjonert det moderne utviklermiljøet. Muligheten til å pakke applikasjonene dine i en enkelt bunt og sende dem til noen plattform er intet mindre enn revolusjonerende.

Men nok ros om Docker. I denne artikkelen vil vi diskutere hvordan du kopierer filer til og fra en beholder til vertssystemet og omvendt.”

La oss komme i gang

Docker CP

Docker CP er et kommandolinjeverktøy som lar deg kopiere filer og kataloger mellom systemer. Kommandoen tar på seg en veldig enkel syntaks som muliggjør enkel arbeidsflyt.

Kommandosyntaks:

Docker CP [Alternativer] Container: SRC_PATH DEST_PATH |-

CP -verktøyet vil kopiere filene som er spesifisert fra SRC_PATH til DEST_PATH. Dette lar deg kopiere fra beholderen til vertssystemet og omvendt.

Containeren kan kjøre eller stoppet tilstanden, og kommandoen vil utføre kopieroperasjonen vellykket.

Hvis en katalog er spesifisert, vil kommandoen kopiere filene rekursivt inn i den spesifiserte destinasjonen.

For å kopiere filer fra vertssystemet til en beholder, kan du bruke syntaks:

$ docker cp host_path container_id: sti

Den samme kommandosyntaxen gjelder når du vil kopiere filer fra beholderen til vertssystemet:

$ docker cp container_id: src_path host_path

La oss se hvordan vi kan oppnå dette med praktiske eksempler.

Få løpende containere

Det første trinnet er å få navn og ID -er på de løpende containerne. Vi kan gjøre dette med Docker PS -kommandoen.

$ docker ps

Når du har fått beholderen og navnet eller ID -en, kan vi fortsette. Du kan få ID i container -ID og navnkolonner.

Kopier filer fra vertssystem til container

Anta at vi har en fil som heter sikkerhetskopiering.Tar på skrivebordet av vertssystemet og vil kopiere det til Debian11 -beholderen.

Vi kan kjøre kommandoen:

Docker CP ~/Desktop/Backups.Tar Debian11:/Hjem

Kommandoen over vil kopiere sikkerhetskopiene.tjærefil i hjemmekatalogen til den spesifiserte beholderen.

Vi kan bekrefte at filen eksisterer ved å kjøre kommandoen:

$ docker exec -ti debian11 /bin /bash

Kommandoen over skal tillate deg å logge inn i beholderen og gyte et bash -skall.

Du kan nå liste opp filene og katalogene i beholderen som:

root@f657a827600: /# ls -la /home
Totalt 7188
DRWXR-XR-X 1 ROOT ROOT 4096 7. juni 02:09 .
DRWXR-XR-X 1 ROOT ROOT 4096 7. juni 02: 09 ..
-RW-R-R-- 1 ROOT ROOT 7348816 7. juni 02:08 Backups.tjære

Vi kan se at filen har blitt kopiert til beholderen med hell.

Hvis du ønsker å bruke container -IDen, kan du kjøre kommandoen:

Docker CP ~/Desktop/Backups.TAR F657A827600:/Hjem

Merk: Hvis en fil med et lignende navn eksisterer som den spesifiserte destinasjonsbanen, vil kommandoen overskrive den utenom.

Docker Copy -fil fra container til vert

Vi kan også bruke kommandoen til å kopiere filer fra beholderen til vertssystemet. Anta for eksempel at vi vil kopiere loggene fra containeren til Logs -katalogen i vertens desktop -mappe.

Vi kan kjøre kommandoen:

$ sudo docker cp debian11:/var/log/~/desktop/logger

I kommandoen over ber vi Docker CP -kommandoen om å kopiere filene fra /var /log -katalogen i Debian11 til Logs -katalogen i vertssystemet.

Vi kan bekrefte dette ved å kjøre kommandoen:

$ ls -ls ~/Desktop/Logs
Totalt 72
0 DRWXR-XR-X 3 ROOT-STEMONEN 96 27. MAI 03:00 APT
0 -RW-RW ---- 1 ROOT PERSONAL 0 MAI 27 03:00 BTMP
8 -RW-R-R-- 1 Rotstab 3232 27. mai 03:00 Faillog
64 -RW-RW-R-- 1 Rotstab 29896 27. mai 03:00 Lastlog
0 -RW-RW-R-- 1 ROOT PERSONAL 0 MAI 27 03:00 WTMP

Docker CP Preserve Attributter

Du vil merke at når vi først kopierer en fil til og fra vertssystemet, bevarer ikke Docker attributtene som tillatelser, UID -er osv.

Vi kan løse dette ved å legge til -et flagget i Docker CP -kommandoen.

$ docker cp -a host_path container: sti
$ docker cp -a container: sti verts_path

Et eksempel er som vist:

sudo docker cp -a debian11:/var/log/~/desktop/logger

Vi kan se at tillatelsene ligner en av de kopierte filene i beholderen.

Konklusjon

I denne opplæringen lærte du hvordan du bruker Docker CP -kommandoen til å kopiere filer til og fra en Docker -beholder til vertssystemet og omvendt.

Takk for at du leste!!