将单个文件从NFS docker卷挂载到容器中

示例(为简便起见,省略了许多选项):

version: "3"

volumes:

traefik:

driver: local

driver_opts:

type: nfs

o: "addr=192.168.1.100,soft,rw,nfsvers=4,async"

device: ":/volume/docker/traefik"

services:

traefik:

volumes:

- traefik/traefik.toml:/traefik.toml

这是错误的,因为没有名称名称的卷,这traefik/traefik.toml意味着该卷名称必须是文件的完整路径(即,您不能在该卷名称后附加路径)?

尝试设置device: ":/volume/docker/traefik/traefik.toml"只会返回not a directory错误。

有没有办法将单个文件安装到容器中?

回答:

您不能在命名卷中装入文件或子目录,源是命名卷或主机路径。NFS本身,以及您将在Linux中挂载的大多数文件系统,都要求您挂载整个文件系统,而不是单个文件,当下降到inode级别时,这通常是一件好事。

我能想到的剩下的选项是将整个目录挂载到容器内的其他位置,并符号链接到所需的文件。或使用NFS将目录挂载到主机,然后将主机挂载(绑定挂载)到特定文件。

但是,考虑到您提供的示例,使用docker配置将是我的理想解决方案,完全删除NFS挂载,并获得文件的只读副本,该文件将自动分发到运行容器的任何节点。

有关配置的更多详细信息:https :

//docs.docker.com/engine/swarm/configs/

以上是 将单个文件从NFS docker卷挂载到容器中 的全部内容, 来源链接: utcz.com/qa/413613.html

回到顶部