docker compose:group_add使用组id但不使用组名称
我有一个容器,需要在某个时候运行其他容器 我使用docker compose:group_add使用组id但不使用组名称,docker,docker-compose,Docker,Docker Compose,我有一个容器,需要在某个时候运行其他容器 我使用group\u add将容器的用户添加到主机的docker用户组 如果我设置了组id,但没有设置组名,则效果很好。文件中说,它应该同时适用于这两种情况。对这个问题有什么想法吗 以下是我的docker compose文件的简化版本: version: '2.1' services: my-worker: image: workers/data-handler:1.0.2 volumes:
group\u add
将容器的用户添加到主机的docker
用户组
如果我设置了组id,但没有设置组名,则效果很好。文件中说,它应该同时适用于这两种情况。对这个问题有什么想法吗
以下是我的docker compose文件的简化版本:
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
映像中的
docker
组可能与主机的组id不同。检查容器内docker的组id:
$ getent group docker | cut -d: -f3
当您使用group\u add:docker
时,它会在容器中查找docker组,因此您的用户将没有正确的权限。由于您正在装载docker.sock文件,它将使用主机权限(包括id),因此您需要提供正确的id
我还没有让它在我的环境中以可行的方式工作,并求助于shell脚本而不是docker compose
,因为它在我的用例中工作,我没有使用docker compose
提供的额外功能
#!/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