在执行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.26/images/json: dial unix /var/run/docker.sock: connect: permission denied
"docker rmi" requires at least 1 argument(s).
See 'docker rmi --help'.
原因就是没有执行的权限,注意到/var/run/docker.sock
,这个路径下的文件docker.sock干什么用的?请看这里Daemon socket option。
- Docker指令由Docker daemon监听执行。
- Docker daemon 通过三种socket类型(
unix, tcp, fd
),监听Docker引擎api请求。 -
unix domain socket(IPC)
默认在/var/run/docker.sock
文件下创建。 - 该文件创建需要
root
权限或docker组权限
。
由此可以知道,因为/var/run/docker.sock
没有写入权限,导致 docker请求管道无法连接,那么授予docker.sock读写权限即可,执行以下命令:
sudo chmod 777 /var/run/docker.sock
再次执行docker 命令即可成功!