Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 执行以下代码后,npm获取错误“;连接EACCES/var/run/docker.sock“;在ubuntu 14.04上_Node.js_Docker_Ubuntu - Fatal编程技术网

Node.js 执行以下代码后,npm获取错误“;连接EACCES/var/run/docker.sock“;在ubuntu 14.04上

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);

我在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);
console.log('ALL: ' + containers);
});
但是

连接EACCES/var/run/docker.sock时出错


提前感谢。

发生这种情况是因为您没有足够的权限访问Docker。有两种解决方案:

  • 使用sudo运行命令。(不推荐)

  • 使用以下命令将当前用户添加到
    docker
    组:

    $ sudo usermod -aG docker $USER
    $ newgrp docker
    

  • 运行此命令并再次尝试运行代码后,请注销并重新登录。(推荐)

    请记住,运行任何Docker命令都意味着在主机上不受限制地访问根目录;“需要
    sudo
    ,因为这其实不是一个坏主意。”戴维马兹同意。但是使用sudo并重复输入密码会变得有点麻烦。将用户添加到组中是一种更优雅的方法。