无法从容器内连接到Docker守护程序

无法从容器内连接到Docker守护程序,docker,docker-compose,Docker,Docker Compose,我运行一个需要访问主机Docker引擎的容器(cAdvisor) 当我使用命令行将其作为服务运行时,一切正常: docker service create --name cadvisor --network clusternetwork -p 8080:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock,ro --mount type=bind,src=/,dst=/rootfs,r

我运行一个需要访问主机Docker引擎的容器(cAdvisor)

当我使用命令行将其作为服务运行时,一切正常:

docker service create  --name cadvisor  
--network clusternetwork  -p 8080:8080 
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock,ro     
--mount type=bind,src=/,dst=/rootfs,ro        
--mount type=bind,src=/sys,dst=/sys,ro     
--mount type=bind,src=/var/lib/docker,dst=/var/lib/docker,ro     
gcr.io/google-containers/cadvisor:latest
但是,当我将以下服务转换为docker compose文件并使用
docker stack deploy-c myCadvisor-compose.yml cAdvisor
运行它时,它不起作用,我得到以下错误:无法获取docker信息:无法在unix:///var/run/docker.sock. docker守护进程正在运行吗?

这是我的docker文件。我是不是忘了把上面服务电话的内容转置了

version: "3.7"

services:

    cadvisor:
            image: gcr.io/google-containers/cadvisor:latest
            ports:
                    - 8080:8080
            volumes:
                - /var/run/docker.sock:/var/run/docker.sock,ro   
                - /:/rootfs,ro
                - /sys:/sys,ro
                - /var/lib/docker:/var/lib/docker,ro
            networks:
                    - clusternetwork
networks:
  clusternetwork:
    external: true

我已经测试了你的代码。主要问题是“您必须放置一个”:。RW或RO不重要。在我的例子中,工作的是这样的:

volumes:
    - /:/rootfs:ro
    - /var/run/docker.sock:/var/run/docker.sock:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro

干杯朱尔斯

试着加上:ro而不是,ro@StefanAvramovic是的,其实很简单。非常感谢。这个坐骑不适合我!你的错误信息是什么?