@alexeyaktanov

Как в docker сохранить данные имеющиеся в контейнере?

Приветствую.
Собираю свой контейнер на базе образа дебиан 12. В dockerfile присутствует команда установки exim4. Запускаю собранный контейнер, подключаюсь к нему. присутствует сконфигурированная по дефолту папка с файлами /etc/exim4/.
Хорошо, иду дальше. Хочу что бы эта папка с настройками сохранялась при удалении контейнера. Добавляю вольюм.
И тут начинаются проблемы, а именно поскольку директория на сервере пустая, то при монтировании вольюма в контейнер данные в контейнере так же пропадают. Да, оно так и должно быть, но мне нужно что бы данные конфигурации exim4 в контейнере как то сохранились. Подскажите как это можно реализовать?

Dockerfile:
FROM debian:12
RUN apt-get update
RUN apt-get install exim4-daemon-heavy -y
RUN cp -r /etc/exim4/ /etc/exim4_tmp/
ENTRYPOINT ["/usr/sbin/exim", "-bdf", "-d", "-q1h"]


Docker-compose.yml:

version: '3.6'
services:
  smtp:
    image: exim4:v1
    container_name: smtp
    ports:
      - 2025:25
    volumes:
      - '/opt/exim4/smtpsender04/config:/etc/exim4'
      - '/opt/exim4/smtpsender04/mail:/var/mail'
      - '/opt/exim4/smtpsender04/log:/var/log/exim'
    restart: unless-stopped
    networks:
      - localnet
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
@dronmaxman
VoIP Administrator
Есть два подхода, использовать внутренний 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"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы