问题标签 [mounted-volumes]
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 mount 只能在交互模式下工作
我是 Docker 新手,我正在尝试使用 run 命令的挂载选项,但它们在我的 linux 环境中不起作用。
我有一个名为transformer的可执行文件,其目的是从名为txts的目录中获取一个 txt 文件,将其转换为 python 文件并将此类文件保存到另一个名为dict的目录中。在这两个文件夹之上,我还有第三个文件夹(lib),其中包含启动变压器所需的库。
所以我的项目文件夹的结构是这样的:
运行变压器需要启动以下命令:
有了这个,我尝试在 Docker 容器中运行该进程。
Dockerfile:
有了这个,我构建了一个名为transformercontainer的图像
但是,显然,容器运行,执行它的操作,之后立即停止,我没有我的 python 文件,所以下一步是将容器的 dict 文件夹链接到主机的 dict 文件夹。这就是我一直失败的地方。
我启动以下命令:
并且 python 文件没有出现在我的主机 dict 文件夹中。
然后我所做的是尝试通过以交互模式运行它来手动启动容器内的转换器可执行文件
此时,我直接运行了我在 Dockerfile 的 CMD 部分中编写的完全相同的命令,现在我不仅可以清楚地看到,在容器内,dict 文件夹现在填充了一个新的 python 文件,但是当我关闭时我还可以在主机的 dict 文件夹中找到相同的 python 文件,因此目录挂载工作得很好。
显然我做错了什么,但经过无数次尝试后,我已经是最后一根稻草了。
swift - 如何使用 Swift 检查已安装的卷当前是否正在使用?
我正在尝试卸载已安装的卷以防它满足某些条件并且为此我使用以下代码。
FileManager.default.unmountVolume(at: URL(fileURLWithPath: convictedFile), options: [FileManager.UnmountOptions.allPartitionsAndEjectDisk, FileManager.UnmountOptions.withoutUI], completionHandler: {(_) in})
当我使用此代码时,它会强制卸载卷。如果用户仍在处理其中存在的任何文件,我不想卸载它。有什么方法可以检查用户是否打开了挂载卷的任何文件?谢谢。
kubectl - Pod 上的卷挂载为空
我正在尝试通过配置映射在 pod 中创建卷挂载。以下是我的定义文件:
配置图定义:
部署定义:
所有对象都创建得很好,我可以看到带有我放置的数据的配置图。但是从配置映射创建的 db.properties 文件是空的,里面没有数据。有谁知道我在这里想念什么?
docker - 主机目录指示为已安装,但在容器中为空 - 检查什么?
我在 pod 中运行的 Docker 容器minikube
配置了一个从主机的non-empty /home/my_username/useful/dir
挂载的目录。kubectl
显示了我的期望:
但是在 pod 中,挂载点是空的:
我用 , 查看了 pod 的挂载点kubectl exec --stdin --tty --namespace my_namespace my-pod -- findmnt /dir/in/container
,然后查看overlay[/hosthome/my_username/useful/dir]
. 由此,我得出结论,Docker 已按预期从主机挂载目录。
我直接从 pod 的容器检查挂载点(以 root 身份确保没有权限限制):
它没有主机中存在的任何内容。
我应该寻找什么来调查?
macos - 在 MacOS 上通过 ssh 访问外部驱动器
我有一台新的 M1 iMac,连接了 4TB 外置 (USB) 驱动器。在 iMac 上,我可以访问该驱动器的内容,名为“数据”,位于/Volumes/Data
.
我使用 ssh 远程访问这台 iMac,并希望能够访问/Volumes/Data
. 但是,当我尝试时,我得到“不允许操作”。
我已进入系统偏好设置,在安全和隐私下,并将终端、iTerm2 和 bash (/opt/homebrew/bin/bash) 添加到全磁盘访问下的列表中。这会在文件和文件夹中自动镜像。我还在开发者工具中添加了相同的项目。cd
一切都无济于事,当我尝试ls
对/Volumes/Data
.
我的一些搜索结果建议关闭 SIP。除非绝对必要,否则我不愿意这样做。
我确实尝试chflags -R nouchg .
在/Volumes/Data
iMac 上运行,但这也没有解决问题。
将外部驱动器移动到 MacBook Pro(即基于 Intel 的架构)允许远程访问外部驱动器的内容。“不允许操作”错误仅在外部驱动器连接到基于 M1 的 Mac 时发生。
是否有我错过的设置或首选项允许远程访问基于 M1 的 Mac 上的外部硬盘驱动器?
devops - Digital Ocean 中的外部体积监测
我需要监控我的数字海洋水滴正在使用的外部卷,但是,数字海洋内部监控系统似乎不支持监控外部卷,但只有在磁盘利用率超过阈值时才支持。是否有任何外部工具可用于监控数字海洋中的外部体积?
docker - 在数据库 Docker 容器中挂载本地机器的文件系统时出现问题
我正在尝试在 Docker 容器中为数据库安装本地文件系统。
正如官方存储库https://hub.docker.com/_/mariadb中的说明所写:
使用自定义 MariaDB 配置文件 启动配置在文件 /etc/mysql/my.cnf 中指定,该文件又包含 /etc/mysql/conf.d 目录中以 .cnf 结尾的所有文件。此目录中的文件中的设置将增加和/或覆盖 /etc/mysql/my.cnf 中的设置。如果您想使用自定义的 MariaDB 配置,您可以在主机上的目录中创建替代配置文件,然后将该目录位置挂载为 mariadb 容器内的 /etc/mysql/conf.d。
如果 /my/custom/config-file.cnf 是你的自定义配置文件的路径和名称,你可以像这样启动你的 mariadb 容器(注意这个命令只使用了自定义配置文件的目录路径):
参考这条指令,在我的项目的根目录下,我创建了数据库目录,并在 docker-compose 文件中写了以下内容:
之后,我运行命令:
我收到以下消息:
创建 docker-proj_adminer_1 ... 完成 创建 docker-proj_db_1
... 完成 附加到 docker-proj_db_1、docker-proj_adminer_1 db_1
| 2021-06-27 17:15:02+00:00 [Note] [Entrypoint]: MariaDB Server 1:10.5.11+maria~focal 的入口点脚本已启动。db_1 | 2021-06-27 17:15:02+00:00 [注意] [入口点]:切换到专用用户 'mysql' db_1 | 2021-06-27 17:15:02+00:00 [Note] [Entrypoint]: MariaDB Server 1:10.5.11+maria~focal 的入口点脚本已启动。db_1 | 2021-06-27 17:15:03+00:00 [注意] [入口点]:初始化数据库文件 db_1 | 2021-06-27 17:15:18 0 [错误] InnoDB:文件操作中的操作系统错误号 22。db_1
| 2021-06-27 17:15:18 0 [错误] InnoDB:错误号 22 表示“无效参数”db_1 | 2021-06-27 17:15:18 0 [错误] InnoDB:文件 ./ibdata1:“aio write”返回操作系统错误 222。无法继续操作 db_1 | 210627 17:15:18 [错误] mysqld 收到信号 6;db_1 | 这可能是因为您遇到了错误。也有可能这个二进制 db_1 | 或者它所链接的库之一已损坏,构建不正确,db_1 | 或配置错误。此错误也可能是由硬件故障引起的。
同时,我想指出,如果我执行相同的命令但没有挂载文件系统,那么一切都很好。
请告诉我,我的错误是什么,我做错了什么?
docker - Docker-Compose 挂载的卷主机权限
嗨,我有一个关于 docker-compose 的问题。我有一个在 compose 中运行的应用程序。我将卷从主机安装到容器。我更改了.env
文件的权限,所以只有 root 可以读取和写入它。我注意到这是徒劳的,因为该应用程序将以明文形式将密码保存在已安装的文件夹中。
如果我将文件夹权限更改为600
or700
并将用户更改为 root,docker compose 中的容器将无法启动。
如何设计一个只能通过sudo
主机访问但容器也可以访问的文件夹?有点像 postgres 挂载文件夹(postgres - 如果指定了挂载卷 - 在主机上创建文件夹,只能由 root 访问)
docker - 无法在 Windows 的 Docker 容器中挂载 Windows 网络驱动器
我厌倦了查看有关如何在基于 Windows 的容器中安装 Windows 网络驱动器的各种结果。
我尝试使用该选项进行安装
我得到的结果为
我还尝试将我的主机(Windows 10)中的网络驱动器作为本地驱动器安装,并尝试了以下操作。
结果是
这里 X 驱动器是我映射的网络驱动器。
我还发现了这个相关的问题以及这个平台上与这个问题相关的几乎所有其他问题。
但我得到的结果是:
此平台不支持选项。而且似乎 docker for windows 不支持 --options。
如果有人可以用简单的选项解决问题,那将是一个很大的帮助,因为我在谷歌上寻找了几天的答案,但所有结果都与 linux 系统有关。
期待您的支持。
TIA。