docker - 挂载错误(13):权限被拒绝-在docker/kubernetes中

标签 docker kubernetes mount cifs windows-share

我对kubernetes和docker还是很陌生,所以请耐心等待我。
我正在尝试在docker中包含的linux中挂载Windows共享,这是一个kubernetes容器。
我设法在kubernetes和docker中获得了所有正确的权限以手动安装共享。但是,我需要通过Dockerfile来完成此操作,因为它需要自动化。
这是我的Dockerfile:

WORKDIR /app
COPY ./start-script.sh ./start-script.sh

RUN apt-get update && apt-get install -y cifs-utils
RUN mkdir Windows-Share
# RUN mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>

ENTRYPOINT ["bash", "./start-script.sh"]
这是我的start-script.sh:
#!/bin/bash
mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>
exec dotnet <dotnet dll>
现在应该注意,我无权访问任何docker命令,它们都由kubernetes处理。 kubernetes创建pod后,日志将显示:

mount error(13): Permission denied

Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)


这使我感到困惑,因为如果我登录到kubernetes容器并手动运行mount命令,它将很好地安装。我想念什么?

最佳答案

正确的方法往往是在容器外部提供适当的存储设置,而不是尝试在容器中装入东西。在Kubernetes的特定情况下,这意味着设置适当的Volumes,然后将其安装在您的pod规范中。

没有现成的SMB / CIFS Volume驱动程序,但看起来像Microsoft publishes Kubernetes storage plugins可以提供帮助。

关于docker - 挂载错误(13):权限被拒绝-在docker/kubernetes中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51678964/

相关文章:

docker - 无法在 intellij 中配置 docker

docker - Kubernetes:未设置图像 “XXX.dkr.ecr.eu-west-1.amazonaws.com/msg/my_image:v1.0”的ID或大小

kubernetes - 如何解决GKE上的kubectl连接问题

mysql - Linux:MySQL:如何在 Linux 中使用安装在 NTFS 上的 mysql 数据库作为 mysql 数据库?

java - 返回字符串而不是在 wicket 中呈现页面

permissions - 挂载共享 cifs 的始终权限为 777

java - 连接拒绝从 docker 连接到 Elasticsearch docker 容器

asp.net - 在Docker中托管Razor组件的建议

docker - 如何在没有docker客户端的情况下将通过save命令创建的docker镜像推送到远程注册表

kubernetes - Kubernetes 配置文件的通用位置