簡體   English   中英

無法從容器內連接到 Docker 守護進程

[英]Cannot connect to the Docker daemon from within container

我運行一個需要訪問主機的 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 守護進程是否正在運行?

這是我的 docker-compose 文件。 我是否忘記從上述服務電話中轉置某些內容?

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

干杯朱爾斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM