微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

弄清楚 Docker 主机卷权限

如何解决弄清楚 Docker 主机卷权限

我正在尝试运行 gocd 服务器 docker 映像并面临文件权限问题。似乎无法弄清楚我错过了什么。

找出容器中正在使用的 uid/gid:

]$ sudo docker container run gocd/gocd-server:v21.1.0 id
$ exec /usr/local/sbin/tini -g -- id
uid=1000(go) gid=0(root) groups=0(root)
[centos@ip-10-0-0-168 ~]$ 

在本地主机上创建文件夹并设置所有权:

$ sudo mkdir -p /gocd/data
[centos@ip-10-0-0-168 ~]$ sudo chown -R 1000:0 /gocd/
[centos@ip-10-0-0-168 ~]$ 
[centos@ip-10-0-0-168 ~]$ ls -l /
total 16
lrwxrwxrwx.   1 root   root    7 Feb 29  2020 bin -> usr/bin
:
drwxr-xr-x.   3 centos root   18 Feb  8 15:55 gocd
:

Docker 运行:

$ sudo docker run  -v /gocd/data/:/godata -p 8153:8153 gocd/gocd-server:v21.1.0
/docker-entrypoint.sh: Creating directories and symlinks to hold GoCD configuration,data,and logs
$ mkdir -v -p /godata/artifacts
mkdir: can't create directory '/godata/artifacts': Permission denied
/docker-entrypoint.sh: cannot mkdir -v -p /godata/artifacts
[centos@ip-10-0-0-168 ~]$ 

解决方法

好的,所以我没有使用 chown -R 1000:00 /gocd,而是切换到 chown -R 1000:root,这样我就可以启动容器了。

尽管在这两种情况下 ls -l 的输出显示相同的用户和组:

drwxr-xr-x.   3 centos root   18 Feb  9 01:36 gocd

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。