目前我在脚本中有以下内容:
DOCKER_GROUP_ID=$(cut -d: -f3 < <(getent group docker))
...
docker run --group-add ${DOCKER_GROUP_ID} ...
问题是,当我运行此脚本时,我始终在结果容器中收到如下消息:
groups: cannot find name for group ID 999
解决方案:
根据@TarunLalwani的回答,我的脚本中有以下内容:
DOCKER_GROUP_ID=$(cut -d: -f3 < <(getent group docker))
CMD="docker run -d \
--group-add ${DOCKER_GROUP_ID} \
${IDEA_IMAGE}"
echo $CMD
CONTAINER=$($CMD)
# Post-configuration
docker exec --user=root -it $CONTAINER groupadd -g $DOCKER_GROUP_ID docker
docker attach $CONTAINER
答案 0 :(得分:1)
这是预期的,用户和组存储在文件系统下的某些文件中。对于用户/etc/passwd
,对于组/etc/group
。
如果你进入容器,你就不会在/ etc / group中找到一个id为999的组的条目,因此id
命令也找不到名字。
但请注意,这不应该导致问题,因为名称主要用于显示目的。容器用户已经属于ID为999的组,因此它具有此类组具有的权限,无论该组是否具有显示名称。
答案 1 :(得分:1)
这是预期的行为,因为组ID仅插入容器内而不是其名称。因此,您可以运行id命令,看到组名称不仅仅传递了组ID
唯一的办法就是运行命令groupadd -g 999 docker
。这也将它添加到组文件中。但是你必须执行它并且docker不会为你做这件事