有没有办法指定组的名称和编号与docker运行 – 组添加?

目前,我在脚本中具有以下内容:

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 

这是预期的行为,因为组ID只被插入到容器中,而不是它的名字。 所以你可以运行id命令看到组名不会只传递组ID

唯一的办法是运行命令groupadd -g 999 docker 。 这也将它添加到组文件。 但你必须执行它,docker工人不会为你做

这是预期的,用户和组被存储在文件系统下的某些文件中。 对于用户来说,它是/etc/passwd/etc/group

如果你进入容器,你将不会在/ etc / group中find一个ID为999的组,因此id命令也找不到名字。

但请注意,这不应该导致问题,因为名称主要是为了显示目的。 容器用户已经属于一个ID为999的组,因此它具有这样的组所具有的权限,而不pipe该组是否具有显示名称。