Тома docker-compose, не монтируемые в каталоги хоста

Я использую docker-compose для развертывания, с 2 docker-compose.yml установка, где я собираю образ локально и извлекаю из докера на сервере.

Локально:

app:
  build: .
  volumes:
    - "./tmp/volume:/volume"

И на сервере:

app:
  image: username/repo:tag
  volumes:
    - "/data/volume:/volume"

Локально мой том монтируется в указанный каталог нормально, файлы, созданные приложением, сохраняются там вне контейнера. Однако на сервере развертывания этого не происходит.

Однако файлы создаются и сохраняются в процессе развертывания, даже если мой сценарий развертывания выполняется docker-compose down -v который предположительно удаляет именованные и анонимные тома в контейнере.

Я уверен, что делаю что-то не так, но я не вижу, что.

1 ответ

Решение

Сервер в этом случае был узлом EC2 в AWS, и это оказалось проблемой при подключении тома EBS после запуска демона docker.

По сути, docker ожидал файловую систему до того, как том был смонтирован /dataи файлы были фактически записаны в затененную /data каталог, но невидимый из-за монтирования. Это застало меня врасплох в основном потому, что монтирование произошло задолго до развертывания, когда изначально создавались контейнеры.

Поэтому, если вы монтируете тома EBS на узле EC2, перезапустите сервис докера, если вы ожидаете, что контейнеры смогут получить доступ к этим томам.

Другие вопросы по тегам