Docker-compose: определить mount для монтирования привязки и управляемого монтирования

Я использую docker-compose для определения моего сервиса. В докере есть два понятия для объема докеров. Во-первых, около bind mount: mount на хост-хранилище.

docker run -d --name web-app -v $HOST/location:/container/location -p 80:80 httpd:latest

Во-вторых, это managed mount: абстрактное хранилище, не зависящее от хоста.

docker run -d --name web-app -v /container/location -p 80:80 httpd:latest

Я хочу сопоставить эти понятия с docker-compose. Это означает, как я могу определить bind mount и managed mount при использовании docker-compose.

Ответ 1

Вы можете найти эти концепции Docker в разделе volumes Docker Compose: https://docs.docker.com/compose/compose-file/#/volumes-volumedriver

Примеры:

volumes:
  # Just specify a path and let the Engine create a volume
  - /container/location

  # Specify an absolute path mapping
  - ./myfolder/location:/container/location

Ответ 2

Хотя я отвечаю очень поздно. Но, возможно, это поможет другим людям в будущем. Ниже приведена конфигурация для обоих типов. https://docs.docker.com/compose/compose-file/#volumes

    version: "3.2"
    services:
     web:
      image: httpd:latest
      volumes:
       - type: bind
         source: $HOST/location
         target: /container/location
       - type: volume
         source: mydata
         target: /container/location
     volumes:
      mydata: