0

我正在尝试运行一个 mongodb 容器。一切都很好,预计它不会启动,因为它无法修改给定卷的权限。Red Hat 文章中有一个关于此问题的可能修复程序,但它可能无法正常工作,因为容器内的 mongodb 以 root 身份执行所有操作。(或者至少我没有成功)

这里还发布了一个可行的解决方案,但它只有在将容器安装在与容器相同的目录时才有效,这不是我的情况。

是否可以在没有 root 的情况下运行类似的东西,或者现在唯一的选择是以 root 身份运行它?

podman run -d -p 27017:27017 -v /path/to/dir:/data/db --name container_name mongo:latest
4

1 回答 1

4

通过附加:Z-v选项的值,它可以在 Fedora 32 上运行。

这个例子表明它没有失败:Z但成功了:Z

[user@laptop ~]$ cat /etc/fedora-release
Fedora release 32 (Thirty Two)
[user@laptop ~]$ podman --version
podman version 2.0.3
[user@laptop ~]$ mkdir /home/user/datadir
[user@laptop ~]$ podman run -d -p 27017:27017 -v /home/user/datadir:/data/db --name container_name docker.io/library/mongo:latest
09db7d3aa409f74e384396d7e8861aa1cb0a3533ffceeb21b604314c240d9772
[user@laptop ~]$ podman container list
CONTAINER ID  IMAGE   COMMAND  CREATED  STATUS  PORTS   NAMES
[user@laptop ~]$ podman logs container_name
find: '/data/db': Permission denied
chown: changing ownership of '/data/db': Permission denied
[user@laptop ~]$ podman container rm 09db7d3aa409f74e384396d7e8861aa1cb0a3533ffceeb21b604314c240d9772
09db7d3aa409f74e384396d7e8861aa1cb0a3533ffceeb21b604314c240d9772
[user@laptop ~]$ podman run -d -p 27017:27017 -v /home/user/datadir:/data/db:Z --name container_name docker.io/library/mongo:latest
649c23b5e43bab97e0b446be29e9c5b6ebc26978d5faff818e078d16c35917b1
[user@laptop ~]$ podman logs container_name | grep 27017
2020-07-26T07:55:53.777+0000 I  CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=649c23b5e43b
2020-07-26T07:55:54.371+0000 I  NETWORK  [listener] Listening on /tmp/mongodb-27017.sock
2020-07-26T07:55:54.371+0000 I  NETWORK  [listener] waiting for connections on port 27017
[user@laptop ~]$ 

手册页 引用podman run

Z 选项告诉 Podman 使用私有非共享标签标记内容。

于 2020-07-26T08:10:23.630 回答