Как перенести файлы в контейнер Docker

Иногда вам может понадобиться перенести файлы из контейнера Docker в хост-систему для целей резервного копирования и т. д. Это можно легко сделать в Linux с помощью инструмента docker cp . Вот как это использовать.

xr:d:DAFds8YL9ik:2,j:43601822907,t:23032003

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

Если вам нужно перенести файлы за пределы контейнера Docker в хост-систему, самый быстрый и простой способ сделать это — использовать инструмент Docker CP. Для начала войдите на свой сервер через SSH или через физический монитор с терминальным интерфейсом.

После того, как вы вошли в систему, получите доступ к учетной записи Root. Вы можете сделать это двумя способами. Либо с помощью команды su , либо с помощью команды sudo -s .

су

Или

судо -с

После входа в систему выполните команду docker ps . Выполнение этой команды покажет все запущенные контейнеры. Найдите идентификатор контейнера, из которого вы планируете передавать файлы. Затем используйте следующую команду для входа в контейнер.

Примечание: замените $id идентификатором вашего контейнера.

docker exec -it $id /bin/bash

Теперь, когда вы вошли в свой контейнер Docker с помощью приведенной выше команды docker exec , вам нужно будет перемещаться по контейнеру и сжимать файлы, которые вы хотите передать, с помощью Docker CP.

В этом примере мы будем использовать папку «test» в /root/каталоге. Вам нужно будет изменить эту команду в соответствии с вашими потребностями.

tar -czvf my-archive.tar.gz /root/test/

После сжатия файлов выйдите из контейнера. Вы можете выйти из интерфейса терминала в контейнере Docker, используя следующую команду выхода .

Выход

Наконец, перенесите файлы из контейнера в хост-систему.

docker cp CONTAINER_ID:/path/to/archive.tar.gz /host/system/folder/

Передача файлов без сжатия

Хотя не рекомендуется передавать файлы без предварительного сжатия (в целях безопасности), вы можете это сделать. Если вы хотите просто перенести каталог, содержащий некоторые файлы, вот как это сделать.

Сначала определите путь к папке, войдя в контейнер. Вы можете войти в контейнер с помощью команд ниже.

су

docker exec -it $id /bin/bash

После определения пути к папке, которую вы хотите перенести, выйдите из контейнера. Затем выполните следующую команду docker cp .

docker cp CONTAINER_ID:/путь/к/вашей/папке//хост/система/папка/

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

Помимо передачи файлов через Docker-контейнер на хост, есть возможность передавать файлы с хоста обратно на контейнер. Для этого найдите расположение файлов, которые вы хотите перенести в свой док-контейнер.

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

tar -czvf my-archive.tar.gz /путь/к/вашей/папке/

После сжатия вашей папки в архив Tar.GZ вам необходимо получить идентификатор контейнера, в который вы хотите передать файлы. Сначала войдите в систему с помощью su или sudo -s .

су

Или

судо -с

После входа в учетную запись root запустите команду docker ps . Эта команда покажет информацию обо всех запущенных контейнерах. Затем вы можете взять эту информацию и использовать команду docker cp для передачи сжатого архива.

докер пс

docker cp /path/to/my-archive.tar.gz CONTAINER_ID:/path/to/destination/

Передача файлов без сжатия

Если вы хотите перенести в контейнер ничего не сжимая, вот как это сделать. Сначала войдите в систему с помощью su или sudo -s . После того, как вы вошли в систему как пользователь root, найдите путь к папке, которую вы хотите перенести.

Получив путь к папке, используйте команду docker ps , чтобы получить идентификатор контейнера, в который вы хотите передать файлы. Затем используйте следующую команду docker cp , чтобы скопировать файлы в вашу систему.

docker cp /path/to/my/file/folder/ CONTAINER_ID:/path/to/destination/

Как передать файлы из контейнера Docker с хоста с помощью Rsync

Использование команды docker cp должно быть достаточным для передачи файлов на хосты и с них. Однако также можно выполнять Rsync-файлы из контейнера на хост. Имейте в виду, что на хост-компьютере должен быть включен и запущен SSH-сервер.

Для начала войдите в систему как пользователь root на хост-сервере Linux через терминал. Вы можете войти в учетную запись root, используя su или sudo -s . После входа в учетную запись root запустите команду docker ps .

су

Или

судо -с

докер пс

Найдите идентификатор контейнера Docker и войдите в систему, используя приведенную ниже команду. Затем установите средство Rsync с помощью диспетчера пакетов контейнера. Обязательно замените «$id» идентификатором контейнера.

docker exec -it $id /bin/bash

После того, как вы установили Rsync с помощью диспетчера пакетов контейнера, используйте приведенную ниже команду Rsync для синхронизации файлов из контейнера на хост.

rsync -avz -e ssh /путь/к/локальным/файлам/ user@remote:/путь/к/удаленным/файлам/


Улучшите буфер обмена Gnome Shell с помощью Pano

Улучшите буфер обмена Gnome Shell с помощью Pano

Посмотрим правде в глаза, буфер обмена Gnome Shell по умолчанию не очень хорош. Установите Pano, чтобы улучшить работу с буфером обмена!

Как установить DaVinci Resolve 17 в Linux

Как установить DaVinci Resolve 17 в Linux

Вам нужен отличный нелинейный видеоредактор для Linux? Заставьте Davinci Resolve 17 работать с этим руководством!

Как загрузить обои на рабочий стол Linux с помощью загрузчика обоев

Как загрузить обои на рабочий стол Linux с помощью загрузчика обоев

Wallpaper Downloader — удобный загрузчик и менеджер обоев для Linux. Он поддерживает большинство сред рабочего стола Linux и очень прост в использовании. Это руководство

Как установить ОС Tuxedo на свой компьютер

Как установить ОС Tuxedo на свой компьютер

Хотите протестировать ОС Tuxedo на компьютерах Tuxedo? Узнайте, как установить последнюю версию Tuxedo OS на свой ПК.

Как установить файл DEB в Linux

Как установить файл DEB в Linux

.DEB вариант № Что ты делаешь с этим? Узнайте о многих способах установки файлов DEB на ПК с Linux.

Как играть в Dying Light на Linux

Как играть в Dying Light на Linux

Dying Light — видеоигра в жанре survival horror, разработанная Techland и изданная Warner Bros Interactive Entertainment в 2015 году. Игра сосредоточена на

Как установить Neptune Linux на свой компьютер

Как установить Neptune Linux на свой компьютер

Neptune использует среду рабочего стола KDE Plasma 5 и стремится создать элегантную ОС. Вот как установить Neptune Linux на свой компьютер.

Попробуйте новый рабочий стол на основе оснастки Ubuntu

Попробуйте новый рабочий стол на основе оснастки Ubuntu

Хотите опробовать новую настольную операционную систему Ubuntu, основанную на Snap-пакетах? Узнайте, как развернуть его на виртуальной машине с помощью этого руководства.

Как играть в Undertale на Linux

Как играть в Undertale на Linux

Undertale — это двухмерная инди-ролевая игра 2015 года, разработанная и изданная разработчиком игр Тоби Фоксом. Это руководство расскажет о загрузке и установке Undertale на вашем компьютере.

Как играть в Total War: THREE KINGDOMS на Linux

Как играть в Total War: THREE KINGDOMS на Linux

Total War: Three Kingdoms — это пошаговая стратегия в реальном времени, разработанная Creative Assembly. Вот как играть на Linux.