---
title: 'Как скопировать данн0ые с хоста в 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/rus/)
  * [FAQ](https://zomro.com/rus/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:<путь к файлу на хост машине> <путь к файлу на хост машине>
    

  
  
Давайте посмотрим на это в действии на простом примере образа докера 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)  


Как мы можем наблюдать новый файл скопирован во внутрь контейнера.   
  
По такому же принципу, можно переносить данные из контейнера на хост и наоборот.   


Также предлагаем рассмотреть другие полезные статьи:

  * [Список важливих команд для роботи з Docker-compose](https://zomro.com/ua/blog/faq/304-spisok-vazhnyh-komand-dlja-raboty-s-docker-compose)
  * [Как развернуть любую версию PHP в Docker-Compose](https://zomro.com/rus/blog/faq/348-how-to-deploy-any-version-of-php-in-docker-compose-for-beginners)
  * [Как подключиться к Docker контейнеру по sFTP](https://zomro.com/rus/blog/faq/306-how-to-connect-to-a-docker-container-via-sftp)



Похожие статьи

[Настройка DNS-сервера BIND9 на Linux для внутренней сети](https://zomro.com/rus/blog/faq/714-setting-up-a-bind9-dns-server-on-linux-for-an-internal-network) [Как ограничить доступ к сайту по IP через .htaccess](https://zomro.com/rus/blog/faq/614-how-to-restrict-access-to-the-site-by-ip-via-htaccess) [Системный сборщик мусора PHP на Linux](https://zomro.com/rus/blog/faq/372-php-system-garbage-collector-on-linux) [Как установить Nextcloud на Ubuntu 20.04](https://zomro.com/rus/blog/faq/288-kak-ustanovit-nextcloud-na-ubuntu-2004) [Список важных команд для работы с Docker-compose](https://zomro.com/rus/blog/faq/304-spisok-vazhnyh-komand-dlja-raboty-s-docker-compose)

[ Выделенные серверы от €88.80/мес ](/rus/dedicated-servers)
