---
title: 'Як скопіювати дані з хоста в Docker і з Docker на хост | Zomro'
description: 'Іноді потрібно відправити файли з хостової машини в контейнер Docker і навпаки. У цій статті ми побачимо, як це зробити.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669746477_1.png'
---

![opened image]()

  * [Zomro](https://zomro.com/ua/)
  * [FAQ](https://zomro.com/ua/blog/faq/)
  * Як скопіювати дані з хоста в Docker і з Docker на хост 



# Як скопіювати дані з хоста в Docker і з Docker на хост

14-11-2022

Як ми бачили з попередніх статей, Docker може спростити розгортання різних додатків та їх запуск.  
  
Але іноді потрібно передавати файли з хост-машини в контейнер Docker та з контейнера на хост.  
  
У цій статті ми покажемо, як це зробити.  


Нижче наведені команди, передбачають, що Docker вже встановлено. Якщо ні, то дізнатися, як це зробити, ви можете в статтях: "[Як встановити Docker на Centos 7](https://zomro.com/rus/blog/faq/287-kak-ustanovit-docker-na-centos-7)" або "[Як встановити Docker на Ubuntu 20.04](https://zomro.com/rus/blog/faq/286-kak-ustanovit-docker-na-ubuntu-2004)".  


## Копіювання файлів з хост-системи в Docker-контейнер.

  
Для копіювання в Docker та з нього, будемо використовувати утиліту **docker cp**.  
  
Утиліта **docker cp** копіює вміст джерела в місце призначення.  
  
Ви можете копіювати з файлової системи контейнера на локальний комп'ютер або навпаки, з локальної файлової системи в контейнер.  
  
  
**Приклад:****Локальний хост - > Контейнер**
    
    
    docker cp <шлях до файлу на хост-машині> containerid:<шлях до файлу в контейнері>
    

  
**Приклад: Контейнер - > Локальний хост**
    
    
    docker cp containerid:<шлях до файлу на хост-машині> <шлях до файлу на хост-машині>
    

  
  
Давайте подивимося на це на прикладі простого образу Docker Nginx.  
  
Можемо скористатися наступною командою:
    
    
    docker run -d --name nginx_copy nginx
    

  
де:  
**nginx_copy** \- ім'я контейнера (можна використовувати будь-яке)  
**nginx** \- ім'я образу на docker hub, яке ми будемо використовувати  
  
  
Якщо цього контейнера у вас немає на сервері, зачекайте, поки він завантажиться.  
  
![Як скопіювати дані з хоста в Docker і з Docker на хост](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669746477_1.png)  


Тепер зайдемо в контейнер, щоб подивитися/дізнатися, де або який файл скопіювати.
    
    
    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
    

  
![Як скопіювати дані з хоста в Docker і з Docker на хост-1](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669746815_2.png)  
Як бачимо, файл успішно скопіювався на хост. Тепер можемо його змінити, а потім завантажити назад.

## **Як скопіювати файл в контейнер.**

  
Припустимо, тепер змінений файл nginx.conf потрібно скопіювати назад в контейнер. Для цього можемо скористатися такою конструкцією:
    
    
    docker cp ~/nginx.conf nginx_copy:/etc/nginx/nginx.conf_cp
    

  
Якщо все введено правильно, ми зможемо спостерігати за цим файлом в контейнері.  
  
Зайдемо в контейнер:
    
    
    docker exec -it nginx_copy /bin/bash
    

  
І виведемо список директорії **/etc/nginx:**
    
    
    ls -la
    

  
![Як скопіювати дані з хоста в Docker і з Docker на хост-2](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669747156_3.png)  


Як ми можемо спостерігати, новий файл скопійований всередину контейнера.  
  
За таким же принципом можна переносити дані з контейнера на хост і навпаки.

Також пропонуємо розглянути інші корисні статті:

  * [List of important commands for working with Docker-compose](https://zomro.com/blog/faq/304-spisok-vazhnyh-komand-dlja-raboty-s-docker-compose)
  * [How to Deploy Any Version of PHP in Docker-Compose](https://zomro.com/blog/faq/348-how-to-deploy-any-version-of-php-in-docker-compose-for-beginners)
  * [How to connect to a Docker container via sFTP](https://zomro.com/blog/faq/306-how-to-connect-to-a-docker-container-via-sftp)



Схожі статті

[Сканування на віруси на Linux-сервері](https://zomro.com/ua/blog/faq/716-virus-scanning-on-linux-maldet) [Як встановити FileBrowser у Docker](https://zomro.com/ua/blog/faq/293-kak-ustanovit-file-browser-v-docker) [Як встановити MariaDB у Docker](https://zomro.com/ua/blog/faq/290-kak-ustanovit-mariadb-v-docker) [Помилка 406 Not Acceptable](https://zomro.com/ua/blog/faq/491-error-406-not-acceptable) [Як встановити Redis в Docker і Docker Compose](https://zomro.com/ua/blog/faq/301-kak-ustanovit-redis-v-docker)

[ Виділені сервери від €88.80/міс ](/ua/dedicated-servers)
