是否可以使用卷/装载和docker compose从远程主机装载目录

是否可以使用卷/装载和docker compose从远程主机装载目录,docker,ubuntu,docker-compose,Docker,Ubuntu,Docker Compose,经过长时间的搜索,我找不到问题的答案或解决方案,我是否可以装载或使用docker compose中的卷从远程主机绑定目录 示例始终使用本地目录或卷 澄清一下:我尝试在不同的VM上建立一个蓝绿色的部署,然后在两个应用服务器上建立一个数据库。应用程序及其组件将使用docker部署,并且还需要访问保存内容的同一目录,因此蓝色和绿色都可以访问保存的文件。我的想法是在数据库服务器上创建这个目录,因为它将以同样的方式使用。现在,我正在尝试装载或使用docker compose中的卷语法,以便后端容器可以访问

经过长时间的搜索,我找不到问题的答案或解决方案,我是否可以装载或使用docker compose中的卷从远程主机绑定目录

示例始终使用本地目录或卷

澄清一下:我尝试在不同的VM上建立一个蓝绿色的部署,然后在两个应用服务器上建立一个数据库。应用程序及其组件将使用docker部署,并且还需要访问保存内容的同一目录,因此蓝色和绿色都可以访问保存的文件。我的想法是在数据库服务器上创建这个目录,因为它将以同样的方式使用。现在,我正在尝试装载或使用docker compose中的卷语法,以便后端容器可以访问db服务器上的目录。需要访问该目录的容器基于ubuntu图像(如果有必要的话)

这条路对吗?那么我如何在docker-compose.yml或Dockerfile中分配它呢?还是有更好的方法来实现这一点


提前感谢

Docker允许您使用本地卷驱动程序将文件系统装载到容器中,以使用mount syscall访问任何内容。syscall与Linux中的mount命令几乎相同。但是,当您执行NFS装载之类的操作时,您将看到mount命令如何将该命令预处理到系统调用中

以下是在docker中执行NFS卷装载的几种不同方法的示例:

  # create a reusable volume
  $ docker volume create --driver local \
      --opt type=nfs \
      --opt o=nfsvers=4,addr=nfs.example.com,rw \
      --opt device=:/path/to/dir \
      foo

  # or from the docker run command
  $ docker run -it --rm \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # or to create a service
  $ docker service create \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # inside a docker-compose file
  ...
  volumes:
    nfs-data:
      driver: local
      driver_opts:
        type: nfs
        o: nfsvers=4,addr=nfs.example.com,rw
        device: ":/path/to/dir"
  ...
有关所有选项和潜在陷阱的更多详细信息,请参阅关于类似问题的