【发布时间】:2019-10-30 19:43:06
【问题描述】:
在 Docker for Mac 的香草安装中,我的 docker.sock 归我的本地用户所有:
$ stat -c "%U:%G" /var/run/docker.sock
juliano:staff
即使我在Dockerfile 上添加用户和组,当我尝试以我的身份运行 DinD 时,docker.sock 的挂载也是使用root:root 创建的。
$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
--user $(id -u):$(id -g) \
"your-average-container:latest" \
/bin/bash -c 'ls -l /var/run/docker.sock'
srw-rw---- 1 root root 0 Jun 17 07:34 /var/run/docker.sock
换一种方式,以 root 身份运行 DinD,chowning 套接字,然后运行命令破坏主机 docker。
$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
"your-average-container:latest" \
/bin/bash
$ chown juliano:staff /var/run/docker.sock
$ sudo su juliano
$ docker ps
[some valid docker output]
$ exit
$ docker ps
Error response from daemon: Bad response from Docker engine
我已经看到 people 报告 chowning 是要走的路,所以也许我做错了什么。
问题:
- 为什么主机 docker 坏了?
- 是否有某种方法可以防止主机 docker 发生故障,并且仍然允许我的用户访问 docker 内的套接字?
【问题讨论】:
标签: macos docker ubuntu docker-in-docker