如何使用2.1版Docker Compose语法创建共享的命名卷。我想将主机文件夹安装为共享卷,并在两次关机之间将数据持久保存在主机上。

web:
< ----- remainder of service defn omitted for clarity ----->
  # Load the external volume 'pgdata' into the folder /var.. on the host
  volumes:
    - pg-data:/var/lib/postgresql/data


# Top level volumes key allows sharing of volume across multiple services
# Volumes defined as name: <path on host>
volumes:
  # Volume named pgdata is located here on the host
  pg-data: #/var/lib/postgresql/data/
  # App data volume
  app-data: #./scribl/
  # Static files volume
  static-data: #./static/

更新:
我正在寻找的关键是能够指定主机上共享卷的位置,即与旧方法相同,但具有命名容器
volumes:
  - location/on/host:location/on/container

最佳答案

好了,经过git问题列表的大量搜索之后,我们得到了:

Github Issue

实现看起来像这样,其中volume是顶层命令:

volumes:
  # Volume named pgdata is located here on the host
  pg-data: #/var/lib/postgresql/data/
    driver: local
    driver_opts:
      device: /var/lib/postgres/ # this is the mount path on the host
      o: bind

编辑:
设备路径必须是绝对路径->与docker开发人员进行了大量来回讨论

10-07 19:10
查看更多