我对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/