我正在尝试通过podman-compose在容器中启动kafka。我使用的是/opt/kafka/kafka_2.12-2.4.1/bin/kafka-server-start.sh,它很好。但是,我正在挂载一个包含属性文件/home/vagrant/repos/kafkazookeeper/config:/home/kafka/config的目录。目前,此属性文件具有nobody/nobody的所有者/组权限。在主机上,kafka用户是kafka:x:1001:1001::/home/kafka:/bin/bash,但在容器中,kafka用户是kafka:x:1000:0::/opt/kafka/:/bin/bash
我尝试过在docker-compose.yaml中使用--uidmap 1001:kafka,但没有成功。我们非常感谢您的任何想法。
发布于 2021-07-06 23:01:29
我强烈推荐阅读这篇文章:https://www.redhat.com/sysadmin/rootless-podman-makes-sense
容器中的用户及其UID映射到主机上的一组不同的用户和UID。这是由/etc/subuid和/etc/subgid控制的,您可以在运行podman unshare cat /proc/self/uid_map时看到实际的映射。
如果您在主机上的kafka用户下运行容器,则kafka用户将被映射到容器内的root。您不能将容器内部的kafka用户映射到容器外部的kafka用户,因为root已经映射到它,并且您不能将容器中的两个不同的UID映射到主机上的单个UID。
我认为您可以将配置文件的权限设置为每个人都可以读取。或者,您可以在主机上创建另一个用户,使用--uidmap将其映射到容器内的kafka用户,然后使用新创建的用户来控制配置。
https://stackoverflow.com/questions/66533939
复制相似问题