【发布时间】:2019-01-29 02:07:01
【问题描述】:
为什么 Docker 将卷挂载为root,而不是作为运行命令docker run 的用户?这可以通过设置一些参数/参数等来改变吗?
MWE:
$ ls -la
drwxr-xr-x 2 ubuntu ubuntu 4096 Aug 22 18:09 shinylog
$ docker run -v $(pwd)/test_dir/:/home/ --name nginx -d nginx
bf340face11485a81ee7c208d490f11abbdc84089ffe9c01d71ffcf8b9ffc27d
$ ls -la
drwxr-xr-x 2 ubuntu ubuntu 4096 Aug 22 18:09 shinylog
drwxr-xr-x 2 root root 4096 Aug 22 18:33 test_dir
$ echo $USER
ubuntu
编辑: 安装docker后遇到错误:
Got permission denied while trying to connect to the Docker
daemon socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/json: dial
unix /var/run/docker.sock: connect: permission denied
并执行:
sudo usermod -a -G docker $USER
也许这就是问题所在?
【问题讨论】:
-
发生这种情况是因为您已将当前用户添加到 docker 组。如果当前用户是 root,那么它将以 root 身份挂载。完成 docker 设置步骤
-
@Kalanamith 我按照此处的建议将
ubuntu用户添加到docker组:docs.docker.com/install/linux/linux-postinstall/… - 而且我没有以root 身份运行docker。
标签: docker permissions docker-volume