簡體   English   中英

如何在 docker-compose.yml 中配置卷?

[英]How to config volumes in docker-compose.yml?

我猜這是一個非常簡單的問題,但我找不到答案。 這是我的 docker-compose.yml

version: '3'
services:
  db:
    volumes:
      - db:/var/lib/mysql
volumes:
  db: 
  nextcloud:

問題是,我想在“volumes”中指定“db”或“nextcloud”的值,並在“Services”中引用它們。像這樣

services:
  db:
    volumes:
      - db:/var/lib/mysql
  nextcloud:
    volumes:
      - nextcloud:/var/www/html
volumes:
  db: /home/roj/DataDisk/nextcloud-insecure/db
  nextcloud: /home/roj/DataDisk/nextcloud-insecure/disk

但我遇到了問題ERROR: In file './docker-compose.yml', volume 'db' must be a mapping not a string.

我該如何解決?

頂級volumes部分並不意味着指定掛載,而是卷驅動配置(請參閱有關此問題的官方文檔)。 IE。 這是不正確的

volumes:
  db: /home/roj/DataDisk/nextcloud-insecure/db # incorrect
  nextcloud: /home/roj/DataDisk/nextcloud-insecure/disk # incorrect

如果要將主機目錄掛載到容器中,則必須在servicesvolumes部分中指定它,例如。

services:
  db:
    volumes:
      - /home/roj/DataDisk/nextcloud-insecure/db:/var/lib/mysql
  nextcloud:
    volumes:
      - /home/roj/DataDisk/nextcloud-insecure/disk:/var/www/html

有關更多信息,請參閱有關服務卷的官方文檔

您在外volumes指令中的語法不正確。

如果要掛載到 docker 管理的卷,請執行以下操作:

services:
  test:
    image: alpine
    volumes:
      - db:/app

volumes:
  db:

如果要掛載到本地路徑,請執行此操作(您可以將.:/app中的點替換為任何其他本地路徑,例如: /home/you:/server/path ):

services:
  test:
    image: alpine
    volumes:
      - .:/app

如果它以點或斜線開頭,它將被視為路徑,否則,將被視為 docker 管理的命名卷。

這些是常見的使用模式,但您可以閱讀有關compose 中卷的更多信息以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM