Как сохранить данные, хранящиеся в контейнере Docker?

Как можно сохранить данные конфигурации Exim4 в контейнере при использовании Docker, чтобы они сохранялись даже после удаления контейнера?
  • 27 июня 2024 г. 11:31
Ответы на вопрос 2
Для сохранения данных в контейнере Docker существует несколько способов:

1. Монтирование томов: можно создать том (volume) в Docker и монтировать его в контейнер, чтобы данные сохранялись даже после удаления контейнера. Например, при запуске контейнера с использованием параметра `-v` можно указать путь к директории на хосте, которая будет монтироваться в контейнер. Таким образом все данные, сохраненные в этой директории в контейнере, будут сохраняться и после удаления контейнера.

2. Использование Docker volumes: Docker volumes позволяют хранить данные вне контейнера, поэтому они сохраняются даже при удалении контейнера. Для создания Docker volume можно использовать команду `docker volume create <volume_name>`, а затем при запуске контейнера использовать параметр `--mount` для примонтирования этого тома.

Чтобы сохранить данные конфигурации Exim4 в контейнере при использовании Docker, рекомендуется использовать описанные выше методы. Например, можно создать Docker volume и монтировать его в директорию, где хранятся конфигурационные файлы Exim4. Таким образом конфигурационные файлы будут сохраняться даже после удаления контейнера.
Есть два подхода, использовать внутренний volumes 

version: '3.6'
services:
  smtp:
    image: exim4:v1
    container_name: smtp
    ports:
      - 2025:25
    volumes:
      - exim4_config:/etc/exim4
      - exim4_mail:/var/mail
      - exim4_logs:/var/log/exim
    restart: unless-stopped
    networks:
      - localnet


volumes:
  exim4_config:
  exim4_mail:
  exim4_logs:


или запустить контейнер руками и сгенерировать конфиг, и пользоваться твои compose

docker run -it --rm \
  -v /opt/exim4/smtpsender04/config:/etc/exim4 \
  -v /opt/exim4/smtpsender04/mail:/var/mail ʼ
  exim4:v1 /bin/bash -c "exim -bP >/etc/exim4/exim.conf"
Похожие вопросы