Fal*_*per 9 docker docker-compose
我一直在使用 Elasticsearch 进行大量工作。我在尝试扩展容器 HDD 空间时遇到了很大的问题。我想将我的卷转移到外部 HDD(NTFS 或其他),但似乎当我使用 docker-compose 进行以下操作时:
volumes:
- /Volumes/Elements/volume_folder/data03:/usr/share/elasticsearch/data
Run Code Online (Sandbox Code Playgroud)
好像没有写权限。我在 Windows 和 Mac 上确认了这种情况,但我认为这实际上是 docker 已经大规模克服的一个常见问题。我一直在寻找但无法做到这一点。
这是怎么做到的?我在我的 Windows 10 计算机上安装了(内部)驱动器,我想设置来存储这些数据,以及多个我想做同样的事情的外部硬盘。
我注意到我作为当前用户始终拥有设备的读写权限,所以我在想有没有办法让 docker 作为当前用户运行来确定驱动器权限?
当前的问题是某个容器超出了当前用户的范围,看起来外部是类似于775的东西。
有人可以帮忙吗?我在 stackoverflow 上查找,所有安装都基于主机,但不是像这样的不同驱动器。我可以轻松地在机器上的任何位置设置音量,但当涉及到外部 HDD 或 H:/ 或 I:/ 时,情况似乎有所不同。
我正在查看这个 Stackoverflow 问题:外部硬盘驱动器上的 Docker 卷,我正在研究我能做什么。当我查看首选项时,我发现 /Volumes 已共享。当我docker-compose up这样做时,它说系统是只读的。(如前所述)。它是 755。有没有办法以特定用户身份运行 docker compose?
编辑:我注意到 docker-compose 允许用户选项,因为我看到安装的 HDD 归我所有。我说创建,也许我可以将我的用户传递到每个容器中,它会正确访问它。我看到这篇文章说我可以这样做:https://medium.com/redbubble/running-a-docker-container-as-a-non-root-user-7d2e00f8ee15
我将用户添加到每个服务中,如下所示: user: ${CURRENT_UID}
然后在 CLI 中,我添加了几个不同的选项:
CURRENT_UID="$(whoami)" docker-compose up
CURRENT_UID="$(id -u):$(id -g)" docker-compose up
Run Code Online (Sandbox Code Playgroud)
上面的一个失败了,因为用户不在 passwd 中,但是下面的一个给了我一个“权限被拒绝”错误。我以为这可能会起作用,但没有。
看看这个:Error after moving Docker's dir to NTFS:overlayfs: upper fs does not support <xxx>
您可能需要更改 docker 用于处理您的文件系统的驱动程序。
您可以使用兼容性更好但性能较低的VFS驱动程序。
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |