opened image

Как Docker-дан хостқа деректерді көшіру және Docker-дан хостқа деректерді көшіру?

Алдын ала ақпараттардан көріп отырғанымыздай, Docker әртүрлі қолданбаларды орнату мен іске қосу процессін жеңілдете алады.

Бірақ қандай-қандай жағдайларда файлдарды хост машинасынан Docker контейнеріне жіберу, контейнерден хостқа жіберу қажет.

Осы мақалада біз бұлды қалай жасауға болады.

 


Төмендегі командалар, Docker-ді өзіңізде орнатқаныңызды айтатындай. Ол жоқ болса, оны қалай орнатуға болады, сіз осы мақалаларда оқи аласыз: "Centos 7-ге Docker-ді қалай орнату" немесе "Ubuntu 20.04-ге Docker-ді қалай орнату".
 

Хост-жүйесінен Docker-контейнерге файлдарды көшіру.


Docker-ге және онан шығару үшін, docker cp құралын пайдаланамыз.

docker cp құралы көшірілетін мазмұнын назар аударып, оның назначение орынға көшіреді.

Сіз контейнер файл жүйесінен локалды компьютерге немесе оның терісінен контейнерге көшіре аласыз.


Мысалы: Локалды хост -> Контейнер

docker cp <хост машинасындағы файлдың мекен-жайы> containerid:<контейнердең файлдың мекен-жайы>


Мысалы: Контейнер -> Локалды хост

 

docker cp containerid:<хост машинасындағы файлдың мекен-жайы> <хост машинасындағы файлдың мекен-жайы>



Өтінеміз, бұлды қарап алу үшін дайындаған докер Nginx образының қарапайым мисалын пайдалана аламыз.

Келесі команданы пайдалана аламыз:

 

 

docker run -d --name nginx_copy nginx

 


мынаның ішінде: 
nginx_copy - контейнердің атауы (кез келгендей пайдалануға болады)
nginx - docker hub-тағы образдың атауы, оны пайдаланамыз


Егер сізде бұл контейнер жоқ болса, оны жүктеп алуға дейін күту керек. 


 

Қазір контейнерге кіріп, оны қарау/білу үшін кіріңіз.

 

 

docker exec -it nginx_copy /bin/bash

 


Қазір терминалда /etc/nginx жолының мазмұнын шығарамыз

 

 

ls -la  /etc/nginx/

 


Мысалы, бізге nginx.conf конфигурациялық файлын көшіру қажет және ол /etc/nginx/nginx.conf мекен-жайында орналасқаны белгілі. Осы үшін келесі команданы енгіземіз:

 

 

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

 


Мысалы:

nginx_copy - көшіретін контейнер;
/etc/nginx/nginx.conf - көшірілетін файлдың мекен-жайы;
~/nginx.conf - назначение жері мен файлдың атауы (атауын басқа да белгілеу мүмкін)

Қорытындыны көрейік:

 

 

 

ls -la

 



Көріп отырғанымыздай, файл сәтті хостқа көшірілді. Оны өзгерте аламыз, содан кейін қайта жүктеп аламыз.

 

 

Файлды контейнерге көшіру.


Әлі де өзгертілген nginx.conf файлын контейнерге қайтару үшін, осы құрылымды пайдалана аламыз:

 

 

 

 

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

 


Егер барлығы дұрыс енгізілген болса, біз осы файлды контейнерде көре аламыз.

Контейнерге кіріңіз:

 

 

docker exec -it nginx_copy /bin/bash

 


Және /etc/nginx жолының тізімін шығарамыз:

 

 

ls -la

 



 

Көріп отырғанымыздай, жаңа файл контейнер ішіне көшірілді. 

Осы жүйе бойынша, контейнерден хостқа және оның терісіне деректерді көшіру мүмкін. 

​​​​​​​Сондай-ақ басқа пайдалы мақалаларды қарастыруды ұсынамыз: