![](/img/trans.png)
[英]How to access /var/run/docker.sock from inside a docker container as a non-root user? (MacOS Host)
[英]chowning the host's bound `docker.sock` inside container breaks host docker
在 Docker for Mac 的 vanilla 安裝中,我的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, chown
套接字,然后運行命令會破壞主機 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
我看到人們報告說chowning 是一種可行的方法,所以也許我做錯了什么。
問題:
我相信,當您安裝卷時,所有者 UID/GID 設置為與主機中的相同(--user 標志僅允許您將命令作為特定 UID/GID 運行,它沒有影響關於安裝卷的權限)
主要問題是——你為什么需要chown? 你不能以 root 身份運行容器內的命令嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.