目前我的脚本中有如下内容:
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
最佳答案
这是预期的,用户和组存储在文件系统下的某些文件中。对于用户来说是 /etc/passwd
,对于组来说是 /etc/group
。
如果您进入容器内部,您将不会在/etc/group 中找到 id 为 999 的组的条目,因此 id
命令也找不到该名称。
但请注意,这不会引起问题,因为名称主要用于显示目的。容器用户已经属于 ID 为 999 的组,因此它具有该组所具有的权限,无论该组是否具有显示名称。
关于docker - 有什么方法可以使用 docker run --group-add 指定组的组名称和 id 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46204643/