是否可以使用卷/装载和docker compose从远程主机装载目录
经过长时间的搜索,我找不到问题的答案或解决方案,我是否可以装载或使用docker compose中的卷从远程主机绑定目录 示例始终使用本地目录或卷 澄清一下:我尝试在不同的VM上建立一个蓝绿色的部署,然后在两个应用服务器上建立一个数据库。应用程序及其组件将使用docker部署,并且还需要访问保存内容的同一目录,因此蓝色和绿色都可以访问保存的文件。我的想法是在数据库服务器上创建这个目录,因为它将以同样的方式使用。现在,我正在尝试装载或使用docker compose中的卷语法,以便后端容器可以访问db服务器上的目录。需要访问该目录的容器基于ubuntu图像(如果有必要的话) 这条路对吗?那么我如何在docker-compose.yml或Dockerfile中分配它呢?还是有更好的方法来实现这一点是否可以使用卷/装载和docker compose从远程主机装载目录,docker,ubuntu,docker-compose,Docker,Ubuntu,Docker Compose,经过长时间的搜索,我找不到问题的答案或解决方案,我是否可以装载或使用docker compose中的卷从远程主机绑定目录 示例始终使用本地目录或卷 澄清一下:我尝试在不同的VM上建立一个蓝绿色的部署,然后在两个应用服务器上建立一个数据库。应用程序及其组件将使用docker部署,并且还需要访问保存内容的同一目录,因此蓝色和绿色都可以访问保存的文件。我的想法是在数据库服务器上创建这个目录,因为它将以同样的方式使用。现在,我正在尝试装载或使用docker compose中的卷语法,以便后端容器可以访问
提前感谢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"
...
有关所有选项和潜在陷阱的更多详细信息,请参阅关于类似问题的