Rootless Podman UID映射和卷挂载问题



我试图通过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

我已经尝试使用--uidmap 1001:kafka在docker-compose。但是没有成功。如有任何意见,不胜感激。

我强烈推荐阅读这篇文章: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用户,然后使用新创建的用户来控制配置。

最新更新