Node.js 执行以下代码后,npm获取错误“;连接EACCES/var/run/docker.sock“;在ubuntu 14.04上
我在Ubuntu 14.04机器上使用npm dockerode执行以下代码以获取所有容器的列表。Docker容器运行正常Node.js 执行以下代码后,npm获取错误“;连接EACCES/var/run/docker.sock“;在ubuntu 14.04上,node.js,docker,ubuntu,Node.js,Docker,Ubuntu,我在Ubuntu 14.04机器上使用npm dockerode执行以下代码以获取所有容器的列表。Docker容器运行正常 var Docker = require('dockerode'); var docker = new Docker({socketPath: '/var/run/docker.sock'}); docker.listContainers({all: true}, function(err, containers) { console.log('err ' + err);
var Docker = require('dockerode');
var docker = new Docker({socketPath: '/var/run/docker.sock'});
docker.listContainers({all: true}, function(err, containers) {
console.log('err ' + err);
console.log('ALL: ' + containers);
});
但是
连接EACCES/var/run/docker.sock时出错
提前感谢。发生这种情况是因为您没有足够的权限访问Docker。有两种解决方案:
docker
组:
$ sudo usermod -aG docker $USER
$ newgrp docker
运行此命令并再次尝试运行代码后,请注销并重新登录。(推荐)请记住,运行任何Docker命令都意味着在主机上不受限制地访问根目录;“需要
sudo
,因为这其实不是一个坏主意。”戴维马兹同意。但是使用sudo并重复输入密码会变得有点麻烦。将用户添加到组中是一种更优雅的方法。