Windows docker:权限被拒绝 /var/run/docker.sock

问题描述 投票:0回答:2

当我尝试使用自动发现运行 filebeat 时,出现以下错误:

退出:自动发现提供程序设置错误:已获得权限 尝试连接到 Docker 守护程序套接字时被拒绝 unix:///var/run/docker.sock:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.22/containers/json?limit=0:拨号 unix /var/run/docker.sock:连接:权限被拒绝

我从 docker 设置中暴露了 tcp://localhost:2375 上的守护进程。

我检查了我的用户是“docker-users”组的成员。

docker-compose.yml:

filebeat:
    image: store/elastic/filebeat:7.3.0
    volumes:
      - ./config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
      - /var/lib/docker/containers/:/var/lib/docker/containers/:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
windows docker filebeat
2个回答
7
投票

user: root
添加到 docker-compose.yml 修复套接字访问:

filebeat:
    image: store/elastic/filebeat:7.3.0
    volumes:
      - ./config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
      - /var/lib/docker/containers/:/var/lib/docker/containers/:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    user: root

0
投票

由于这是在 Windows 下搜索此确切错误消息时显示的第一个答案,因此当从命令行运行它时,这里是使用老式

Dockerfile
解决它的答案:

docker run -u root -v /var/run/docker.sock:/var/run/docker.sock docker_in_docker docker run hello-world

注意添加的

-u root
,它为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.