Как создать постоянный именованный том докера с версией docker-compose 3, которой назначен каталог на хосте и контейнер - PullRequest
0 голосов
/ 05 апреля 2019

Я пытался следовать справочнику docker-compose

https://docs.docker.com/compose/compose-file/

Но не смог получить рабочий пример.

На данный момент наиболее близким я могусоздание именованного тома и обращение к нему через docker-compose в моей службе mongo заключается в создании пути и тома каталога извне через docker

mkdir -p /home/$USER/volumes/app 
docker volume create --opt type=none --opt device=/home/$USER/volumes/app --opt o=bind app

Затем при запуске docker-compose

docker-compose up -d --build --force-recreate

с помощью docker-compose.yml

version: "3.3"
volumes:
  app:
    external: true
services:
  mongodb:
    container_name: app-mongodb
    image: mongo:latest
    ports:
      - 27017:27017 # Mongo
    volumes:
      - app:/data

 ... # Other Services on other containers that write data to mongo

В результате получаем

docker volume list

DRIVER              VOLUME NAME
local               app

docker volume inspect app

[
    {
        "CreatedAt": "2019-04-05T11:34:07-04:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/app/_data",
        "Name": "app",
        "Options": {
            "device": "/home/gitlab-runner/volumes/app",
            "o": "bind",
            "type": "none"
        },
        "Scope": "local"
    }
]

Затем я запускаю оболочку в контейнере mongodb и нахожу файлы в каталоге / data / dbкак и ожидалось.

docker exec -it app-mongodb /bin/bash
ls /data/db

WiredTiger    _mdb_catalog.wt    collection-17-4313982868898758556.wt  collection-25-4313982868898758556.wt  diagnostic.data 
...

Затем я могу выйти из оболочки и перейти к Mountpoint и Options.device, и я вижу каталоги, но ни один из файлов, которые я видел в контейнере.Я могу касаться файлов в каталогах Mountpoint и Options.device и видеть их в любом каталоге.Файлы не отображаются в контейнере.

Насколько я понимаю, тогда ...

  • Я присоединяю том, иначе каталоги не будут показаны.
  • Файлы, созданные во время выполнения, не обновляются.

Как это исправить, чтобы на хосте было то, что на контейнере?

...