Поиск по сайту:
Несчастные имеют более точное и верное представление о счастье (А.В. Вампилов).

Как скопировать файлы между хостом и Docker-контейнером

01.12.2019
Установить Docker 1.11 на Ubuntu 16.04 LTS x64

Команда docker cp — это удобная утилита, которая позволяет копировать файлы и папки между контейнером и хост-системой.

Если вы хотите скопировать файлы из вашей хост-системы в контейнер, вы должны использовать команду docker cp, например:

docker cp host_source_path container:destination_path

 

Если вы хотите скопировать файлы из контейнера в хост-систему, используйте эту команду:

docker cp container:source_path host_destination_path

 

Это может показаться немного пугающим, поэтому позвольте нам объяснить вам несколько практических примеров.

 

Примеры команды Docker cp

В нашей статье мы установили Docker на Ubuntu. Но шаги одинаковы для всех дистрибутивов, работающих под управлением Docker.

Мы надеемся, что вы знаете, как запустить Docker-контейнер, потому что вам нужен работающий контейнер.

Сначала перечислите ваши запущенные контейнеры, используя команду docker ps :

destroyer@andreyex:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8353c6f43fba        775349758637        "bash"              8 seconds ago       Up 7 seconds                            ubu_container

 

Вам нужно знать либо идентификатор контейнера, либо имя контейнера. В нашем случае имя Docker-контейнера — ubu_container. и идентификатор контейнера 8353c6f43fba.

Если вы хотите убедиться, что файлы были успешно скопированы, вы можете ввести свой контейнер следующим образом, а затем использовать обычные команды Linux:

docker exec -it ubu_container bash

 

Копировать файлы из хост-системы в Docker-контейнер

Копирование с помощью docker cp аналогично команде копирования в Linux .

Мы собираемся скопировать файл с именем a.py в каталог home/dir1 в контейнере.

docker cp a.py ubu_container:/home/dir1

 

Читать  Передайте именованный аргумент в сценарии Bash

Если файл успешно скопирован, вы не увидите никакого вывода на экран. Если путь назначения не существует, вы увидите ошибку:

destroyer@andreyex:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2

 

Если целевой файл уже существует, он будет перезаписан без предупреждения.

Вы также можете использовать идентификатор контейнера вместо имени контейнера:

docker cp a.py 8353c6f43fba:/home/dir1

 

Копировать файлы из Docker-контейнера в хост-систему

Команда docker cp выполняется только в хост-системе. Вы не можете запустить его в контейнере.

Даже если вы хотите скопировать файлы из Docker-контейнера в хост-систему, вам необходимо находиться в хост-системе и использовать команду следующим образом:

sudo docker cp ubu_container:/home/dir1/new.txt  /home/destroyer

 

Копировать каталоги между контейнером и хост-системой

Если вы хотите скопировать каталог в Linux с помощью команды cp, вам придется использовать рекурсивную опцию -r.

Но в команде docker cp такие опции не нужны. Эта же команда работает для копирования файлов и папок.

docker cp /home/destroyer/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir  /home/destroyer

 

Копировать файлы и каталоги с оригинальными атрибутами

Вы можете использовать режим архива при копировании с опцией -a. При этом вы можете скопировать все права доступа к файлу, UID и GID исходного файла.

docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path

 

Вот и все. Вы видите, как легко копировать файлы между хостом и контейнером с помощью команды docker cp.

Читать  10 Методов проверки вашей версии Linux: пошаговое руководство

Если у вас есть какие-либо вопросы или предложения, дайте нам знать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (4 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 3 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Игорь

Спасибо, крайне полезная статья!

Это может быть вам интересно


Рекомендуемое
Системный администратор навыки и технологии Чтобы быть эффективными в современную…

Спасибо!

Теперь редакторы в курсе.