opened image

Kaip nukopijuoti duomenis iš šeimininko į Docker ir iš Docker į šeimininką

Kaip matėme iš ankstesnių straipsnių, „Docker“ gali supaprastinti skirtingų programų diegimą ir paleidimą.

Tačiau kartais reikia perkelti failus iš pagrindinio kompiuterio į „Docker“ konteinerį ir iš konteinerio į pagrindinį kompiuterį.

Šiame straipsnyje pamatysime, kaip tai padaryti.

 


Žemiau pateiktos komandos reiškia, kad jau turite įdiegtą „Docker“. Jei neturite, galite sužinoti, kaip tai padaryti straipsniuose: "Kaip įdiegti „Docker“ į „Centos 7“" arba "Kaip įdiegti „Docker“ į „Ubuntu 20.04“".
 

Failų kopijavimas iš pagrindinio kompiuterio į „Docker“ konteinerį.


Norint kopijuoti į „Docker“ ir iš jo, naudosime įrankį docker cp.

Įrankis docker cp kopijuoja turinį iš šaltinio į paskirties vietą.

Galite kopijuoti iš konteinerio failų sistemos į vietinį kompiuterį arba atvirkščiai, iš vietinės failų sistemos į konteinerį.


Pavyzdys: Vietinis kompiuteris -> Konteineris

docker cp <kelias iki failo pagrindiniame kompiuteryje> containerid:<kelias iki failo konteineryje>


Pavyzdys: Konteineris -> Vietinis kompiuteris

 

docker cp containerid:<kelias iki failo pagrindiniame kompiuteryje> <kelias iki failo pagrindiniame kompiuteryje>



Pažiūrėkime, kaip tai veikia paprasto „Docker“ „Nginx“ paveikslėlio pavyzdyje.

Galime naudoti šią komandą:

 

 

docker run -d --name nginx_copy nginx

 


kur:
nginx_copy - konteinerio pavadinimas (galite naudoti bet kokį)
nginx - „Docker Hub“ paveikslėlio pavadinimas, kurį naudosime


Jei neturite šio konteinerio serveryje, palaukite, kol jis bus atsisiųstas. 


 

Dabar pateksime į konteinerį, kad pamatytume / sužinotume, kurį failą kopijuoti ar kaip kopijuoti.

 

 

docker exec -it nginx_copy /bin/bash

 


Dabar išveskime į terminalą katalogo /etc/nginx turinį

 

 

ls -la  /etc/nginx/

 


Pavyzdžiui, norime nukopijuoti konfigūracijos failą nginx.conf ir žinome, kad jis yra kelyje /etc/nginx/nginx.conf. Įveskite šią komandą:

 

 

docker cp nginx_copy:/etc/nginx/nginx.conf ~/nginx.conf

 


Kur:

nginx_copy - konteineris, iš kurio kopijuojame;
/etc/nginx/nginx.conf - kelias iki kopijuojamo failo;
~/nginx.conf - paskirties vieta ir failo pavadinimas (failo pavadinimą galite nurodyti kitą)

Dabar pažiūrėkime rezultatą:

 

 

 

ls -la

 



Kaip matome, failas sėkmingai nukopijuotas į pagrindinį kompiuterį. Dabar galime jį pakeisti ir vėl įkelti.

 

 

Kaip nukopijuoti failą į konteinerį.


Tarkime, dabar norime pakeistą failą nginx.conf nukopijuoti atgal į konteinerį. Tam galime naudoti šią konstrukciją:

 

 

 

 

docker cp ~/nginx.conf nginx_copy:/etc/nginx/nginx.conf_cp

 


Jei viskas įvesta teisingai, galėsime matyti šį failą konteineryje.

Įeikime į konteinerį:

 

 

docker exec -it nginx_copy /bin/bash

 


Ir išveskime /etc/nginx katalogo sąrašą:

 

 

ls -la

 



 

Kaip matome, naujas failas nukopijuotas į konteinerį. 

Pagal tą patį principą galima perkelti duomenis iš konteinerio į pagrindinį kompiuterį ir atvirkščiai. 

 

​​​​​​​Taip pat siūlome apsvarstyti kitus naudingus straipsnius: