docker - 设置卷时 Docker 运行权限问题
问题描述
我创建了一个文件夹 my-jenkins-data 并将权限更改为,chown -R 1000 /root/my-jenkins-data
但是当我尝试从容器访问绑定挂载的目录时出现“权限被拒绝”错误。
这是命令的快速片段:
[root@osboxes /]# sudo chown -R 1000 /root/my-jenkins-data
[root@osboxes /]# sudo docker run -p 8080:8080 -v /root/my-jenkins-data:/var/jenkins_home jenkins/jenkins:lts
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
解决方案
Jenkins 有非 root 用户,即jenkins
.
尝试运行
chown -R 1000:1000 /root/my-jenkins-data
或者,您可以授予该文件夹的所有权限。
chmod -R 777 /root/my-jenkins-data
或者您可以创建 docker 卷并附加到 Jenkins。
docker volume create jenkins
docker run -p 8033:8080 -v jenkins:/var/jenkins_home -u root jenkins/jenkins:lts
要列出卷文件夹,请执行获取文件夹位置docker volume inspect jenkins
$ docker volume inspect jenkins
[
{
"CreatedAt": "2021-01-02T22:13:07+03:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/jenkins/_data",
"Name": "jenkins",
"Options": {},
"Scope": "local"
}
]
$ ls /var/lib/docker/volumes/jenkins/_data
推荐阅读
- r - 在 R 中转换为 lapply - 带有附加 tibble 的 for 循环
- c++ - C++ 原子抢占安全吗?
- html - 访问嵌入在另一个 span 元素中的 span 元素的文本
- amazon-web-services - 如何知道哪个 cognito 用户正在触发 lambda 函数?
- java - 如何在java中将对象保存到txt文件
- sql - 如何从沙发库中获取缺失值列名
- c# - 在延续中使用一个对象,确保它在你需要它之前没有被释放
- sql - PostgreSQL:融合表并计算不同组的百分比
- php - Laravel 不支持付款响应 POST 方法.. 支持的方法是 GET、HEAD
- pandas - Pandas - 序列化大数据帧