Работа с файловой системой Docker
Понимание файловой системы Docker является важным аспектом для эффективного управления и взаимодействия с контейнерами. Docker - контейнеры имеют свою собственную файловую систему, которая отделена от файловой системы операционной системы хоста.
Слои файловой системы Docker
Docker - образы создаются с использованием серии неизменяемых (read - only) слоев, где каждый слой представляет собой изменение в файловой системе. Когда контейнер создается из образа, на верх слоев образа добавляется новый изменяемый (read - write) слой, который позволяет контейнеру изменять файлы без влияния на исходный образ.
graph TB
A[Docker Image] --> B[Read-Only Layers]
B --> C[Read-Write Layer]
C --> D[Docker Container]
Доступ к файловой системе контейнера
Для доступа к файловой системе работающего Docker - контейнера можно использовать команду docker exec
. Эта команда позволяет выполнять команды внутри работающего контейнера, в том числе перемещаться по файловой системе.
## Run a container
docker run -d --name my-container ubuntu:latest
## Access the container's file system
docker exec -it my-container /bin/bash
После входа в контейнер можно перемещаться по файловой системе с использованием стандартных команд Linux, таких как ls
, cd
и cat
.
Копирование файлов между хостом и контейнером
Можно копировать файлы между хост - системой и работающим контейнером с помощью команды docker cp
.
## Copy a file from the host to the container
docker cp /path/on/host my-container:/path/in/container
## Copy a file from the container to the host
docker cp my-container:/path/in/container /path/on/host
Это позволяет легко передавать файлы и данные между хостом и контейнером, облегчая процессы разработки и развертывания.
Сохранение данных с использованием томов
Docker - тома предоставляют способ сохранить данные даже после удаления контейнера. Тома хранятся вне файловой системы контейнера и могут быть разделены между контейнерами или подключены к файловой системе хоста.
## Create a volume
docker volume create my-volume
## Run a container with a volume
docker run -d --name my-container -v my-volume:/app ubuntu:latest
Используя тома, можно гарантировать, что важные данные не будут потеряны при остановке или удалении контейнера, что делает их важной частью работы с файловой системой Docker.