Anastasios Antoniadis
3 min readMar 9, 2024

--

How to Set Up Container Monitoring with cAdvisor and Docker Compose

In containerized applications, keeping track of resource usage and performance metrics is essential to ensure reliability and optimize performance. For this purpose, Google has developed an open-source tool called cAdvisor (Container Advisor) that is specifically designed for monitoring container metrics. It provides users with detailed information on resource usage and performance characteristics of their running containers. By integrating cAdvisor with Docker Compose, the deployment process becomes simplified, enabling seamless monitoring of all containers in a Docker Compose stack. This guide will walk you through the process of setting up cAdvisor with Docker Compose, making it easy to keep a vigilant eye on your container ecosystem.

Prerequisites

Before beginning, ensure you have the following:

- Docker installed on your system.

- Docker Compose installed on your system.

- Basic familiarity with Docker concepts and the YAML syntax used in Docker Compose files.

Step 1: Create a Docker Compose File

Create a directory dedicated to your monitoring setup. This directory will contain your Docker Compose file (docker-compose.yml) and any additional configuration files or directories you might need.

mkdir cadvisor-docker && cd cadvisor-docker

Create the docker-compose.yml file:

touch docker-compose.yml

Open this file in a text editor and insert the following configuration:

version: ‘3.7’
services:
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
volumes:
— “/:/rootfs:ro”
— “/var/run:/var/run:rw”
— “/sys:/sys:ro”
— “/var/lib/docker/:/var/lib/docker:ro”
ports:
— “8080:8080”
restart: always

Configuration Explained:

- image: Specifies the Docker image to use. gcr.io/cadvisor/cadvisor:latest pulls the latest version of cAdvisor directly from Google Container Registry.

- container_name: Sets a custom name for your container for easier reference.

- volumes: Mounts necessary directories from the host to the cAdvisor container to monitor the Docker daemon and containers. These volumes are essential for cAdvisor to access and collect metrics.

- ports: Exposes port 8080 on the host, mapping it to cAdvisor’s web UI port within the container.

- restart: Ensures the cAdvisor container restarts automatically unless explicitly stopped, enhancing reliability.

Step 2: Launch cAdvisor

Navigate to the directory containing your docker-compose.yml file and start cAdvisor by running:

docker-compose up -d

This command will download the necessary Docker image and start the cAdvisor container in detached mode.

Step 3: Access cAdvisor

Once the container is up and running, you can access the cAdvisor web UI by navigating to http://localhost:8080 in your web browser. The cAdvisor UI provides a comprehensive overview of your running containers, including resource usage statistics such as CPU, memory, and network activity and detailed information about each container’s performance.

Conclusion

Deploying cAdvisor using Docker Compose is a streamlined and effective method for monitoring container performance and resource usage. This guide outlines the steps to set up cAdvisor in your Docker environment, providing useful insights into the health and efficiency of your containerized applications. Docker Compose simplifies the management of the cAdvisor service, ensuring easy deployment and scalability. Whether you are a developer, system administrator, or DevOps professional, integrating cAdvisor into your container monitoring strategy can significantly enhance your visibility and control over your Dockerized applications.

--

--