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

Чтобы перенести файл из Docker-контейнера на хост, доступно несколько способов. Вот некоторые из наиболее распространенных подходов вместе с примерами кода:

Метод 1: использование Docker CLI
Вы можете использовать команду docker cpдля копирования файлов между контейнером и хост-компьютером. Вот пример:

docker cp <container_id>:/path/to/file.txt /path/on/host/file.txt

Замените на идентификатор или имя контейнера, /path/to/file.txtна путь к файлу внутри контейнера и /path/on/host/file.txtс нужным путем и именем файла на хост-компьютере.

Метод 2: использование томов Docker
Если вы смонтировали том в контейнере, вы можете напрямую получить доступ к файлам с хост-компьютера. Вот пример:

docker run -v /path/on/host:/path/in/container <image_name>

Замените /path/on/hostна путь на хосте, где вы хотите, чтобы файлы были доступны, а /path/in/containerна соответствующий путь. внутри контейнера.

Метод 3: использование Docker Compose
Если вы используете Docker Compose, вы можете указать сопоставление томов в файле docker-compose.yml. Вот пример:

version: '3'
services:
  myservice:
    volumes:
      - /path/on/host:/path/in/container

Замените /path/on/hostна путь на хосте, где вы хотите, чтобы файлы были доступны, а /path/in/containerна соответствующий путь. внутри контейнера.

Метод 4: использование общего сетевого каталога
Вы можете создать общий сетевой каталог, к которому будут иметь доступ как контейнер, так и хост. Вот пример использования NFS (сетевой файловой системы):

  1. Настройте сервер NFS на хост-компьютере.
  2. Подключите общий каталог как на хосте, так и на контейнере.

Вот пример того, как можно смонтировать общий ресурс NFS внутри контейнера Docker:

docker run -v /path/on/host:/path/in/container --privileged <image_name>

Замените /path/on/hostна путь к общему ресурсу NFS на хосте, а /path/in/containerна соответствующий путь внутри контейнера.