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: