node.js - 在ubuntu 14.04上执行dockerode npm的以下代码后出现错误 "connect EACCES/var/run/docker.sock"

标签 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);
console.log('ALL: ' + containers);
});

但是得到

Error connect EACCES /var/run/docker.sock



提前致谢。

最佳答案

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

  • 使用 sudo 运行命令。 (不建议)
  • 将当前用户添加到 docker使用此命令进行分组:
    $ sudo usermod -aG docker $USER
    $ newgrp docker
    

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

    关于node.js - 在ubuntu 14.04上执行dockerode npm的以下代码后出现错误 "connect EACCES/var/run/docker.sock",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52364905/

    相关文章:

    node.js - 将 objectID 列为选择值并保存表单

    javascript - 如何从 Node.js 中的 URL 获取

    c# - 带有 Azure Linux VM 的 Couchbase

    java - Linux - $JAVA_HOME

    ubuntu - 想要获取系统上所有可用接口(interface)的列表

    javascript - 带有回调的 Bluebird promise 生成器

    node.js - 如何使用 NodeJs 中的 FS 将文件从一个文件夹复制到另一个文件夹?

    postgresql - 为什么我无法在容器中运行 pdo_pgsql?

    java - 如何在 Docker 容器中向 Tomcat 添加 SSL 证书?

    php - Docker 中的 MySQL 数据库访问被拒绝