Копирование файлов из контейнера в локальную файловую систему
На этом шаге вы научитесь копировать файлы из работающего Docker-контейнера в локальную файловую систему. Это полезно для извлечения логов, конфигурационных файлов или других данных, сгенерированных или изменённых внутри контейнера.
Сначала убедимся, что у нас есть работающий контейнер. Мы будем использовать контейнер my_ubuntu_container
из предыдущего шага. Если он не запущен, запустим его.
docker start my_ubuntu_container
Эта команда запускает контейнер с именем my_ubuntu_container
.
Теперь создадим файл внутри контейнера, который мы скопируем на локальную машину. Используем docker exec
для выполнения команды внутри контейнера, чтобы создать файл container_file.txt
в директории /root/
.
docker exec my_ubuntu_container sh -c 'echo "This file is from the container." > /root/container_file.txt'
Эта команда выполняет shell-команду внутри my_ubuntu_container
для создания файла /root/container_file.txt
с указанным содержимым.
Чтобы убедиться, что файл создан внутри контейнера, можно использовать docker exec
для вывода списка файлов в директории /root/
контейнера.
docker exec my_ubuntu_container ls /root/
В выводе должен отображаться файл container_file.txt
.
Теперь скопируем container_file.txt
из контейнера на локальную машину с помощью команды docker cp
. Синтаксис для копирования из контейнера: docker cp <имя_контейнера>:<путь_в_контейнере> <локальный_путь>
. Скопируем файл в директорию ~/project/
.
docker cp my_ubuntu_container:/root/container_file.txt ~/project/
Эта команда копирует файл /root/container_file.txt
из контейнера my_ubuntu_container
в локальную директорию ~/project/
.
Чтобы проверить успешное копирование на локальную машину, выведем список файлов в директории ~/project/
.
ls ~/project/
В выводе должен отображаться файл container_file.txt
вместе с test_file.txt
из предыдущего шага.
Также можно просмотреть содержимое скопированного файла с помощью команды cat
.
cat ~/project/container_file.txt
Вывод должен содержать текст "This file is from the container.", что подтверждает корректное копирование содержимого.
Наконец, удалим контейнер.
docker stop my_ubuntu_container
docker rm my_ubuntu_container