【发布时间】:2020-04-20 19:02:57
【问题描述】:
我在 OCI 容器 (docker.io/library/mongo) 中运行 MongoDB。我想在 /data/db 的容器内挂载一个主机目录(Kubernetes 用语中的 hostPath 挂载)。我在 Fedora Silverblue(具有相同 CLI 的 Docker 替代品)上使用 Podman,但我认为问题不在于 Podman 或 Silverblue 不兼容。
使用:
podman run --name container_name -p=27017:27017 --mount type=bind,source=/path/to/dir,target=/data/db -d mongo
或
podman run --name container_name -p=27017:27017 -v /path/to/dir:/data/db -d mongo
容器退出时出现以下日志:
cannot configure rootless cgroup using the cgroupfs manager
find: '/data/db': Permission denied
chown: changing ownership of '/data/db': Permission denied
容器中 mongo 用户的用户 ID 是 999,我尝试将主机目录更改为该用户,但这无济于事。我也尝试将主机的文件夹设置为具有全局读写访问权限,但这也无济于事。
【问题讨论】:
-
你能补充一些关于
/path/to/dir的所有权和权限的信息吗?您是以root的身份运行podman还是以非root用户身份运行?我都试过了,但我无法重现您看到的错误。 -
@larsks 我以非 root 身份运行 podman。
/path/to/dir属于同一个非 root 用户,拥有权限drwxrwxr-x。我发现如果我将relabel=shared添加到挂载选项,容器会正确挂载,所以我猜这是权限问题。