首页 > 解决方案 > 设置卷时 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?

标签: docker

解决方案


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

推荐阅读