docker - 如何使用与主机共享的数据创建命名 Docker 数据卷

标签 docker docker-compose docker-volume

如何使用版本 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 issues 列表的大量搜索,我们得到了:

Github Issue

实现如下所示,其中volumes是顶级命令:

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 开发人员对此进行了大量的来回讨论

关于docker - 如何使用与主机共享的数据创建命名 Docker 数据卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920208/

相关文章:

amazon-web-services - Amazon Container Registry 仅支持 ECS?

php - Docker,引用不同的容器。使用 php 命令调用 mysqldump

docker - 为什么在 Windows 中使用绑定(bind)挂载卷时需要/host_mt/

docker - 如何从 docker 容器中保存日志文件?

docker - 当用户 namespace 与SELinux一起使用时,Docker运行会引发错误

wordpress - 如何使用 Docker 设置本地 WordPress?

docker - 构建docker-compose时如何使用网络?

docker - 在两个容器之间共享文件

docker - 无法使用Rex-Ray和VirtualBox Media存储将持久卷安装到Docker容器- “Invalid managed object reference”错误

amazon-web-services - AWS Docker 戈兰。 'eb deploy' 错误