"dial unix /tmp/docker.sock: connect: permission denied" 当 运行 docker-组合

"dial unix /tmp/docker.sock: connect: permission denied" when running docker-compose up

我刚换了一台工作用的新电脑,但我不明白为什么会遇到这个问题。我搜索了很多 SO 线程和其他网站,但还没有解决它。

我的 OS 是 Fedora 29。而且我是 docker 的菜鸟,所以老实说我迷失在这一切中。

所以基本上每次我 运行 docker-compose up,我都会收到这个错误:

nginx-proxy        | dockergen.1 | 2019/10/15 08:23:40 Error retrieving docker server version info: Get http://unix.sock/version: dial unix /tmp/docker.sock: connect: permission denied
nginx-proxy        | dockergen.1 | 2019/10/15 08:23:40 Error retrieving docker server info: Get http://unix.sock/info: dial unix /tmp/docker.sock: connect: permission denied
nginx-proxy        | dockergen.1 | 2019/10/15 08:23:40 Error listing containers: Get http://unix.sock/containers/json?all=1: dial unix /tmp/docker.sock: connect: permission denied
nginx-proxy        | dockergen.1 | 2019/10/15 08:23:40 Watching docker events
nginx-proxy        | dockergen.1 | 2019/10/15 08:23:40 Error retrieving docker server info: Get http://unix.sock/info: dial unix /tmp/docker.sock: connect: permission denied
nginx-proxy        | dockergen.1 | 2019/10/15 08:23:41 Docker daemon connection interrupted

docker组

我看到很多人建议创建 docker 组并将当前用户添加到其中,但它对我不起作用,即使在重新登录并重新启动后也是如此。

$ ls -l /var/run/docker.sock
srw-rw----. 1 root docker 0 Oct 15 09:58 /var/run/docker.sock
$ whoami
ave
$ groups ave
ave : ave wheel dialout docker

我也试过sudo setfacl -m user:ave:rw /var/run/docker.sock,也没用。

docker

我已经尝试卸载 docker 并重新安装,停止 docker 守护程序并重新启动它,docker-compose downdocker-compose up

不管我是运行 docker-compose up有没有sudo,都会出现同样的错误。

docker-compose.yml

我的 docker-compose.yml 文件大约有 200 行,所以我认为这是与此问题相关的部分?告诉我是否需要更多。

services:
  nginx-proxy:
   build:
    context: .
    dockerfile: Dockerfile-nginx
   container_name: nginx-proxy
   ports:
    - "80:80"
   environment:
    - DEFAULT_HOST=<a host name>
   volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
   depends_on:
    - web
    - gateway
    - processing

您需要添加

privileged: true

This was merged already. To enable on your containers use:

my_service:
 privileged: true

你可以检查这个issue