使用 Docker 用户命名空间重新映射的绑定卷中断:"Operation not permitted"



我按照此处的说明启用了用户命名空间重新映射。

但是,现在在容器内,我无法再更改-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也是如此。

帮助?

我需要做两件事来解决这个问题:

  1. 我需要删除卷绑定上的:Z
  2. 我需要确保主机上绑定文件夹的权限分别以/etc/subuid/etc/subgid中找到的 UID 和 GID 开头。换句话说,我不得不运行(在主机上):chown -R 100000:100000 vol/service

最新更新