示例(为简便起见,省略了许多选项):
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/
问题内容: 我对Docker中的整个数据量过程有疑问。基本上,这里有两个Dockerfile及其各自的运行命令: Dockerfile 1- 命令1- Dockerfile 2- 命令2- 因此,奇怪的是第一个dockerfile和命令按预期工作。docker守护程序将目录从容器装载到主机的位置。因此,我可以根据需要编辑配置文件,它们将在重新启动后保留在容器中。 但是,对于第二个dockerfil
问题内容: Docker文档指出,可以将单个文件装载到Docker容器中: -v标志还可用于从主机挂载单个文件-而不是目录。 这会将您放入新容器中的bash外壳中,您将从主机获得bash历史记录,退出容器时,主机将具有在容器中键入命令的历史记录。 但是,当我尝试将文件挂载为目录时: 我的Dockerfile看起来像这样: Docker版本为1.9.1,内部版本为a34a1d5。 这是文档问题,还是
这是撰写文件 输出命令: 在docker-entrypoint-initdb. d中,有两个bash脚本,它们创建一个数据库并从转储文件导入到这个数据库。但它在窗口10中不起作用。 这些脚本在MAC OS、Ubuntu中运行良好,我使用docker 1.12.1。我尝试运行具有相同配置和exec的其他容器到容器,但docker-entrypoint-initdb. d不包含我编写的脚本。 谢谢你的
问题内容: 我遇到一个问题,就是我的容器变得太重,其中许多容器具有很多相同的依赖关系。 我想制作一个基本容器,该容器将安装并保存所有依赖项,然后让其他容器指向该基本容器上的依赖项目录(使用卷)。 我试图对此做一个小的POC,我首先尝试让一个容器安装python软件包,然后让另一个容器使用该模块运行python脚本。 我想在主机上建立一个目录,该目录将挂载在所有容器上,并将包含所有需要的数据和依赖项
我试图使用kubernetes在spark cluster模式下从服务器读取一个文件,所以我将我的文件放在所有workers上,并使用< br> val conf = new SparkConf()挂载驱动程序卷。setAppName("sparksetuptest ")。set(" spark . kubernetes . driver . volumes . host path . host
我遵循了以下步骤:如何将卷添加到现有的Docker容器(在容器上运行以将其另存为映像,并基于该映像旋转另一个容器,其中挂载了命名卷)。来自第一个容器的所有数据文件都存在于第二个容器的/var/lib/postgres/data中。 但是,当我试图查询第二个postgres数据库时,我看不到第一个容器中的任何表。几天来一直在尝试解决这个问题,但没有成功,我是不是遗漏了什么(安装一个卷是否会使/var