Чтобы перенести файл из 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 (сетевой файловой системы):
- Настройте сервер NFS на хост-компьютере.
- Подключите общий каталог как на хосте, так и на контейнере.
Вот пример того, как можно смонтировать общий ресурс NFS внутри контейнера Docker:
docker run -v /path/on/host:/path/in/container --privileged <image_name>
Замените /path/on/hostна путь к общему ресурсу NFS на хосте, а /path/in/containerна соответствующий путь внутри контейнера.