docker - 有什么方法可以使用 docker run --group-add 指定组的组名称和 id 吗?

标签 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

最佳答案

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

如果您进入容器内部,您将不会在/etc/group 中找到 id 为 999 的组的条目,因此 id 命令也找不到该名称。

但请注意,这不会引起问题,因为名称主要用于显示目的。容器用户已经属于 ID 为 999 的组,因此它具有该组所具有的权限,无论该组是否具有显示名称。

关于docker - 有什么方法可以使用 docker run --group-add 指定组的组名称和 id 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46204643/

相关文章:

http - 如何在 fiddler 中查看 http 请求到 windows 上的 docker 容器?

docker - 如何重新启动 Windows 容器

docker - Hyperledger Fabric:定义docker-compose时要使用的MSP目录

node.js - docker 容器之间的 econnrefusedrabbitMQ

node.js - 为什么 docker 会创建空的 node_modules 以及如何避免它?

amazon-web-services - 结合 salt、docker 和 Amazon EC2 来托管 Python 应用程序

docker - 错误:服务 'web'生成失败:命令 '/bin/sh -c apk add --no-cache gcc musl-dev linux-headers'返回了非零代码:3

docker - Gitlab docker 和 external_url

docker - 在Docker镜像中运行 Airflow 命令错误:[Errno 13]权限被拒绝:'/opt/airflow/logs/scheduler/

amazon-web-services - AWS ECS容器无法指定区域