问题标签 [unionfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 多个卷到单个目标目录?
有没有办法从主机挂载多个卷以形成单个目标挂载点?有点像这样:
我猜答案是否定的,但是“覆盖”在 Docker 的上下文中具有如此多的含义,因此在网络上搜索它有点困难。
如果没有,是否有可能有帮助的 Docker Store 映像?不幸的是,很多 Docker 镜像没有提供足够的说明来说明如何使用它们。
docker - How file lookup work in Docker container
According to Docker docs, every Dockerfile instruction create a layer, and all the layers are kept when you create new image based on an old one. Then when I create my own image, I might have hundreds of layers involved because of the recursive inherit of layers of base image.
In my understand, file lookup in container work this way:
- process want to access file
a
, lookup starts from the container layer(thin w/r layer) . - UnionFS check whether this layer have a record for it (have it or marked as deleted). If yes, return it or say not found respectively, ending the lookup. If no, pass the task to the layer below.
- the lookup end at the bottom layer.
If that is the way, consider a file that resides in the bottom layer and unchanged by other layers, /bin/sh
maybe, would need going through all the layers to the bottom. Though the layers might be very light-weight, a lookup still need 100x time than a regular one, noticeable. But from my experience, Docker is pretty fast, almost same as a native OS. Where am I wrong?
docker - 授予 Docker 对主机目录的访问权限,但稍后放弃更改
我想用 Docker 实现以下目标:我想让容器访问主机目录,以便容器可以进行更改,但是一旦容器退出/删除,更改就会被丢弃(很像 overlayfs)。
简单地将目录挂载为 docker 容器的卷对我来说似乎是错误的方式,因为对卷所做的更改仍然存在,我不希望这样。
我该如何解决这个问题?
docker - docker storage 后端和容器生成的数据存储
我正在学习 Docker 存储,但我有点困惑
问题 1:
我们是否为每个 docker 主机 1 个后端存储(用于存储图像层和容器的可写层)?
如果我们配置一个容器生成的数据存储(以持久化容器写入的数据(卷、绑定挂载、tmpfs 挂载)),我们将有 2 个存储(后端和容器生成的数据存储)还是只有一个店铺 ?
问题 2:假设我们已经配置了一个卷来持久化容器生成的数据,即使容器被移除,它是否仍将是一个联合 fs 层,即使容器被移除,它也会被持久化?
问题 3:容器是可运行的镜像,但你能具体解释一下它们是什么吗?它们只是一个 unionFs 层吗?
问题 4:
如果我们卸载或停止 docker,环回设备上的精简池是保存还是删除?
如果我们在逻辑卷上配置一个精简池并卸载 docker,我们还会在逻辑卷上保留图像和容器生成的数据吗?
问题 5:我们如何配置 docker 在远程机器上使用组卷(或逻辑卷)?
问题6:为kubernetes/okd/openshift cluser配置的持久化存储和为docker配置的持久化存储有什么不同,docker存储的配置与kubernetes的配置是否冲突? https://docs.okd.io/latest/install_config/persistent_storage/index.html https://docs.okd.io/latest/install_config/persistent_storage/index.html
docker - 当 Docker 共享文件夹抛出实例时它是如何工作的。我们是否应该考虑对一个文件抛出容器进行并发修改?
基本上我们应该只有一个线程来写一个文件。但是在 docker 环境中,我们应该注意共享文件的并发问题吗?
有出口两个问题,
- Docker 如何支持共享卷。文件如何跨实例同步。
- docker 是否支持对共享文件进行并发写入。
docker - Docker 容器中的联合挂载
在我的 Docker 容器中,有两个目录,每个目录都有一个文件:
如何挂载这些目录,以便两个文件仍然可以访问?
之后的结果mount -t aufs -o dirs=/foo:/bar none /mdst
应该如下所示:
(我在里面运行 Container 和 shell--privileged
和--cap-add=SYS_ADMIN
)
我不断得到
mount: /mdst: wrong fs type, bad option, bad superblock on none, missing codepage or helper program, or other error.
一些研究把我带到了这个 GitHub-Issue,告诉我我不能在 docker 容器中做一个 overlay-fs。
有没有其他方法可以实现这一目标,或者我做错了什么?
linux - 将文件添加到 rw unionfs/squashfs 有效,但删除无效
我有一个大文件夹(20-30GB),这在 VPS 上浪费空间(和金钱)。LZMA/XZ 压缩后只需要大约 2-3GB,只有原始大小的 10% 左右。
现在我尝试了 squashfs,除了它是只读的之外,它还是很有前途的。然后我添加了一个 rw 文件夹,就像本教程中显示的那样,添加文件有效,但删除或重命名无效。通过将文件添加到已安装的组合文件夹中,添加的文件将放入我创建的 rw 文件夹中。但是通过删除文件或重命名,在 rw 层文件夹中的操作应该如何?
Unsquashing 不是一个选项,因为它计划只使用大约 10GB 的磁盘空间。
我会很高兴任何提示/提示。
docker - docker容器内的overlayfs
是否可以在(特权)docker 容器中安装覆盖 fs?至少我的直观方法(在容器外运行良好)失败了:
附加信息:
- Docker 版本 18.09.1,构建 4c52b90
- 内核 4.19.0-8-amd64
- Debian 10(主机和 docker-image)
docker - 从一个 docker 容器共享 unionfs 挂载到另一个?
我正在运行 Windows 10、Docker 引擎 20.10.8 社区、WSL2 Ubuntu 20.04.3 LTS。我正在使用 Docker Compose 启动一些服务,主要是我从 docker-hub 获得的图像并且不修改,只需在它们运行后进行配置。我有 2 个 NFS 共享,我想将它们作为联合卷提供给这些服务。我不需要安装在 Windows 级别的 nfs 共享。我构建了一个 Dockerfile 和映像,用于挂载共享并使用 autofs 和在 Dockerfile 中运行的 startup.sh 脚本启动 union-fs 挂载。
如何将这些安装在该自定义容器中的已安装目录作为卷共享到我的 docker-compose.yml 中的其他容器?
自定义挂载容器的 Dockerfile:
启动文件:startup.sh
ps:容器需要以特权运行才能挂载工作。
另一个想法是将 NFS 挂载定义为顶层的卷。overlay2 存储驱动程序支持 nfs。所以 nfs 卷工作正常并且可以与服务共享。但是 unionfs 卷不起作用。overlay2 是否有类似 unionfs 的东西?如果我尝试这个,Docker 会抱怨:
错误:安装卷'/var/lib/docker/volumes/docker_unionMedia_union/_data'时出错:无法安装本地卷:mount nfsElementsMedia=RW:nfsVolume_OriginalsMedia=RO:/var/lib/docker/volumes/docker_unionMedia_union/_data,标志:0x400,数据:cow,max_files=32768,use_ino,allow_other,hard_remove,nonempty:没有这样的设备
任何帮助表示赞赏。
谢谢,托马斯
fuse - 在 appimage 中使用 unionfs
我正在从 AppImage(使用 appimage-builder v0.9.2 创建)中的脚本创建覆盖 FS(使用 unionfs-fuse)。
覆盖已成功挂载,但在脚本结束时,无法使用“ Operation not permitted
”正确卸载。
在 AppImage 结束后,fusermount -u
工作正常。
这是脚本script.sh
:
这是 AppImage 配方AppImageBuilder.yml
:
terminal.png
(构建 AppImage还需要一个随机图标文件)。
AppImage 是使用以下工具构建的:
任何帮助,将不胜感激!