Docker Openshift 4-Mkdir命令获取权限被拒绝错误
我已经为未指定任何要运行的用户的映像设置了部署。当映像启动时,它尝试在Docker Openshift 4-Mkdir命令获取权限被拒绝错误,docker,openshift,Docker,Openshift,我已经为未指定任何要运行的用户的映像设置了部署。当映像启动时,它尝试在/data/cache处创建目录,但遇到权限拒绝错误 我试图从pods中的终端创建目录,但遇到了相同的问题: $ whoami 1000910000 $ mkdir /data/cache mkdir: cannot create directory ‘/data/cache’: Permission denied 已找到,但它要求映像作为特定用户运行,并且我无法更改Dockerfile。是否有任何方法允许图像写入访问/数据
/data/cache
处创建目录,但遇到权限拒绝错误
我试图从pods中的终端创建目录,但遇到了相同的问题:
$ whoami
1000910000
$ mkdir /data/cache
mkdir: cannot create directory ‘/data/cache’: Permission denied
已找到,但它要求映像作为特定用户运行,并且我无法更改Dockerfile。是否有任何方法允许图像写入访问/数据
谢谢如果您无法更改容器本身,则可以选择在此处安装emptyDir
目录
像这样将其添加到部署中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
labels:
app: example
spec:
...
spec:
containers:
- name: example
image: nginx:1.14.2
ports:
- containerPort: 80
volumeMounts:
- mountPath: /data/cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
这是由于OpenShift如何创建/管理映像,因为每次部署时,它都会创建一个随机用户ID
您应该检查如何支持任意用户ID:
支持任意用户ID
默认情况下,OpenShift容器平台使用
任意分配的用户ID。这提供了额外的安全性
防止由于容器引擎而逃逸容器的进程
漏洞,从而在主机上实现升级权限
节点
对于支持以任意用户身份运行的映像,目录和
由映像中的进程写入的文件必须归
根组和可由该组读/写。待归档文件
已执行的还必须具有组执行权限
将以下内容添加到Dockerfile将设置目录和文件
允许根组中的用户在中访问它们的权限
建筑形象:
由于容器用户始终是根组的成员,因此
容器用户可以读写这些文件
所以,你真的应该试着按照这些规则弯曲它。这应该行得通。另一个选项是使用特定的serviceaccount运行容器创建的POD,并将anyuid scc添加到此SA
RUN chgrp -R 0 /some/directory && \
chmod -R g=u /some/directory