docker:在尝试连接到unix的Docker守护程序套接字时获得权限被拒绝:

Mik*_*sta 9 sockets docker

我试过这个

docker run --rm -it -p 2181:2181 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9092:9092 -e ADV_HOST=127.0.0.1 landoop/fast-data-dev
Run Code Online (Sandbox Code Playgroud)

我收到了错误

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
Run Code Online (Sandbox Code Playgroud)

我检查过守护进程是否正在运行

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since ??? 2018-01-23 10:52:50 CET; 2h 14min ago
     Docs: https://docs.docker.com
 Main PID: 11082 (dockerd)
Run Code Online (Sandbox Code Playgroud)

这是我的/ etc/default/docker

# Customize location of Docker binary (especially for development testing).
#DOCKERD="/usr/local/bin/dockerd"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"
Run Code Online (Sandbox Code Playgroud)

如何编辑docker_opts来解决我的问题?

Kil*_*ian 16

尝试将此docker用户添加到docker组.

在此之后,您必须重新启动docker守护程序 usermod -aG docker "${USER}"

  • 命令是Arch和CentOS中的`systemctl start docker.service` (3认同)
  • 如果您注销并重新登录,则会激活组成员资格.为了激活当前会话中的组,您可以运行`newgrp docker`. (3认同)
  • 重启后工作. (2认同)