我按照此处的说明启用了用户命名空间重新映射。
但是,现在在容器内,我无法再更改-v
有界卷的所有权。
我正在使用 Fedora 上的 Docker 和docker-compose
.卷的绑定方式如下:
service_name:
volumes:
- ./vol/service:/opt/service:Z
# other config info removed...
我尝试添加cap_add
:
service_name:
volumes:
- ./vol/service:/opt/service:Z
cap_add:
- CHOWN
- SETGID
- SETUID
# other config info removed...
这无济于事。容器内的 root 用户无法chown
绑定的文件夹(在本例中为/opt/service
)或文件夹内的任何内容,即使我在主机上运行chmod go+rwx vol/service
也是如此。
帮助?
我需要做两件事来解决这个问题:
- 我需要删除卷绑定上的
:Z
- 我需要确保主机上绑定文件夹的权限分别以
/etc/subuid
和/etc/subgid
中找到的 UID 和 GID 开头。换句话说,我不得不运行(在主机上):chown -R 100000:100000 vol/service