1

我正在尝试使我的 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”正确执行?

4

0 回答 0