Назад | Перейти на главную страницу

тома docker-compose не монтируются в каталоги хоста

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

Локально:

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

И на сервере:

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

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

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

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

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

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

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