Prometheus cAdvisor with docker swarm

I have setup a docker Cadvisor using docker service cluster and need to dynamically monitor the nodes of docker cluster using active service discovery.

If I have started the prometheus CAdvisor through docker cluster using docker service command, it’s working fine and I am successfully able to discover the docker cluster nodes dynamically. But, if I’ve passed the same parameters of that command in docker compose-file, I cannot see any nodes. Following is the docker compose configuration of prometheus CAdvisor.

cadvisor:
image: google/cadvisor
container_name: cadvisor
ports:
    - target: 8080
      mode: host
      published: 8040
network_mode: "host"
deploy:
    mode: replicated
command:
    - --docker_only=true
        labels:
    - "prometheus-job=cadvisor"
        volumes:
    - /:/rootfs:ro
    - /var/run:/var/run
    - /sys:/sys:ro
    - /var/lib/docker:/var/lib/docker:ro
    - /var/run/docker.sock:/var/run/docker.sock:rw

Docker service command:

  docker service create --name cadvisor -l prometheus-job=cadvisor 
--mode=global --publish published=8040,target=8080,mode=host 
--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=/var/run,dst=/var/run 
--mount type=bind,src=/sys,dst=/sys,ro 
--mount type=bind,src=/var/lib/docker,dst=/var/lib/docker,ro 
google/cadvisor -docker_only

Any help in this regard will be appreciated.

Source: Docker Questions

LEAVE A COMMENT