首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >docker-compose: group_add可以处理组id,但不能处理组名称

docker-compose: group_add可以处理组id,但不能处理组名称
EN

Stack Overflow用户
提问于 2020-02-04 19:25:23
回答 1查看 4.5K关注 0票数 0

我有一个容器,它需要在某个时刻运行其他容器。

我使用group_add将容器的用户添加到主机的docker用户组中。

如果我设置了组id,但不使用组名,就可以很好地工作。文档上说,它应该同时适用于两种https://docs.docker.com/compose/compose-file/compose-file-v2/#group_add。对这个问题有什么想法吗?

这是我的docker-compose文件的简化版本:

代码语言:javascript
运行
复制
version: '2.1'
services:
    my-worker:
        image: workers/data-handler:1.0.2
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        group_add:
            - 994 #docker group id
        command: run
EN

回答 1

Stack Overflow用户

发布于 2020-04-12 01:34:30

镜像中的docker组可能与主机不具有相同的组id。检查容器内docker的group id:

代码语言:javascript
运行
复制
$ getent group docker | cut -d: -f3

当您使用group_add: docker时,它会查找容器内的docker组,因此您的用户将没有正确的权限。由于您正在挂载docker.sock文件,因此它将使用主机权限(包括id ),因此您需要提供正确的id。

我没有让它在我的环境中以一种可行的方式工作,而是求助于shell脚本而不是docker-compose,因为它在我的用例中有效,并且我没有使用docker-compose提供的额外功能。

代码语言:javascript
运行
复制
#!/bin/bash

DOCKER_GROUP=$(getent group docker | cut -d: -f3)
docker run \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --group-add $DOCKER_GROUP \
    workers/data-handler:1.0.2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60056354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档