linux - 找出 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
:
码头工人运行:
$ 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
推荐阅读
- r - 在 RGL 中将 mesh3d 材质更改为线条
- arrays - 带方括号的链表
- pytest - pytest.approx 的 rel 参数背后的基本原理是什么?
- crud - 为什么按下提交按钮后所有数据都丢失了?
- git - 手动编辑 git add --patch 导致错误(补丁失败)
- python - 如何修剪列值而不将它们变成字符串?
- oracle - ORA-24247: 访问控制列表 (ACL) 拒绝网络访问 - 错误
- javascript - div 点击不像鼠标点击
- java - Android Studio Java:无法将图像从网络下载到应用程序中
- javascript - 如何将动态 url 链接到 jquery 中的标签?