将单个文件从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