【问题标题】:Figuring out Docker host volume permissions找出 Docker 主机卷权限
【发布时间】:2021-05-12 13:28:01
【问题描述】:

我正在尝试运行 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 ~]$ 

【问题讨论】:

  • 您的系统是否启用了 selinux(getenforce 命令的输出是什么)?
  • 检查它已启用,所以我禁用了它sudo setenforce 0,但仍然得到同样的错误。

标签: linux docker file-permissions go-cd


【解决方案1】:

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

虽然在这两种情况下 ls -l 的输出都显示了相同的用户和组:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-30
    • 2015-05-22
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2019-05-08
    • 2021-01-04
    相关资源
    最近更新 更多