我正在尝试使我的 docker 实例能够从 CI 服务器构建其他 docker 映像。我的代理启动了一个容器,我将我的 macs docker.sock 安装到容器中。
- /var/run/docker.sock:/var/run/docker.sock
当在容器内并以 root 身份运行时,我可以下载并运行容器:
root@b6da92395273:/godata/pipelines# docker run helloworld
019300c8a437: Pull complete
dc9253de2674: Pull complete
43208f2470b6: Pull complete
eb4d21c66200: Pull complete
Digest: sha256:6797efb60e8efb49ad1ed48d9904bd23ccdb87fdeba10c0b057986fefaf2756b
Status: Downloaded newer image for XXXXXX
但是,我的构建代理以用户“go”身份运行,而以“go”身份运行时出现以下错误:
go@b6da92395273:/godata/pipelines$ docker run helloworld
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
我的 Dockerfile 中有以下内容
addgroup -g 1000 go && \
adduser -D -u 1000 -G go go && \
当我以 root 身份执行到容器中时,我看到:
bash-4.3# cat /etc/group | grep go
go:x:1000:go
bash-4.3# cat /etc/group | grep root
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
disk:x:6:root,adm
wheel:x:10:root
floppy:x:11:root
dialout:x:20:root
tape:x:26:root
video:x:27:root
bash-4.3# cat /etc/group | grep docker
bash-4.3#
我需要修改什么以允许用户“go”正确执行?