1

运行后:

  brew cask install docker

UNIX 套接字文件不属于docker我的 mac 笔记本电脑(docker 主机)中的组

$ ls -l /var/run/docker.sock
lrwxr-xr-x  1 root  daemon  70 12 Jan 08:19 /var/run/docker.sock -> /Users/user1/Library/Containers/com.docker.docker/Data/docker.sock

因为docker未创建组

 $ cat /etc/group | grep docker
 $ uname -a
Darwin user1 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec  1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64

 $
 $ cat /etc/group | grep daemon
 daemon:*:1:root

docker安装 docker 后,在 ubuntu 上创建组名

运行 jenkins docker 容器(作为DIND),但无法usermod -aG docker jenkins在 Dockerfile 中执行。

目标是在 jenkins 容器中运行 docker 客户端,它可以通过 UNIX 套接字文件()与运行在 docker 主机上的 docker 守护进程通信/var/run/docker.sock


为什么在 mac 上安装 docker 不会创建docker组?

如何解决这个问题?

4

1 回答 1

2

Docker for Mac 就是这么特别。您可以通过以下几种方式解决它:

最不推荐到推荐的顺序:

  1. 修改/var/run/docker.sock的权限,让其他组可以访问socket。
  2. 授予 jenkins 用户 sudo 访问权限
  3. 用于socat在 tcp 套接字上公开守护进程。

来自https://www.benjaminpack.com/blog/docker-jenkins-mac/

socat 进程通过挂载卷的方式将 /var/run/docker.sock 包装在主机上,并以双向方式将其作为 TCP 服务器公开给 Jenkins。所有这些都没有给予 Jenkins 超出其需要的权限。

于 2020-01-12T17:48:31.660 回答