Home  >  Article  >  Operation and Maintenance  >  Docker container monitoring on Linux: How to monitor the performance and health status of containers in real time?

Docker container monitoring on Linux: How to monitor the performance and health status of containers in real time?

WBOY
WBOYOriginal
2023-07-29 18:45:141965browse

Docker container monitoring on Linux: How to monitor the performance and health status of containers in real time?

In today's cloud computing era, Docker has become a common containerization technology. Through Docker, we can easily create, deploy and manage applications. However, for Docker containers running in a production environment, we must perform performance monitoring to ensure that they are running properly and to detect and solve problems in a timely manner. This article will introduce how to use tools and methods on Linux to monitor the performance and health status of Docker containers in real time.

1. Use the Docker Stats command to monitor the performance of the container in real time

The Docker Stats command can provide real-time performance parameters of the container, including CPU usage, memory usage, network IO, block IO, etc. We can view the performance status of the container through the following command:

docker stats <container_id>

where, a3f94dbaba3a4609eaf634c1155b4c45 is the ID of the container to be monitored. This command will display the performance parameters of the container in real time. We can stop the display by pressing Ctrl C.

Code example:

$ docker stats 4a29e009a6c5
CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
4a29e009a6c5        0.03%               5.047MiB / 15.56GiB   0.03%               3.39kB / 0B         78.8kB / 0B         8

The above example shows the CPU usage, memory usage, network IO, block IO and other parameters of the container.

2. Use cAdvisor for comprehensive container monitoring

In the field of container monitoring, cAdvisor (Container Advisor) is a highly respected tool that can provide comprehensive container performance monitoring and analysis. cAdvisor can monitor the CPU, memory, file system, network and other indicators of the container, and provides a visual monitoring interface to facilitate users to conduct real-time monitoring and historical data analysis of the container.

Here are the steps on how to use cAdvisor to monitor Docker containers:

  1. The first step is to install cAdvisor

You can install cAdvisor through the following command:

$ docker run 
  --volume=/:/rootfs:ro 
  --volume=/var/run:/var/run:rw 
  --volume=/sys:/sys:ro 
  --volume=/var/lib/docker/:/var/lib/docker:ro 
  --publish=8080:8080 
  --detach=true 
  --name=cadvisor 
  google/cadvisor:latest
  1. The second step is to access the monitoring interface of cAdvisor

Once cAdvisor is successfully installed and running, you can access it through the browserlocalhost:8080 Check out cAdvisor’s monitoring interface. In the monitoring interface, you can choose to view the monitoring data of a specific container.

Code example:

$ docker run 
  --volume=/:/rootfs:ro 
  --volume=/var/run:/var/run:rw 
  --volume=/sys:/sys:ro 
  --volume=/var/lib/docker/:/var/lib/docker:ro 
  --publish=8080:8080 
  --detach=true 
  --name=cadvisor 
  google/cadvisor:latest

$ open http://localhost:8080

The above example shows how to run cAdvisor through Docker and access the monitoring interface through a browser.

3. Use Prometheus and Grafana for container monitoring

In addition to cAdvisor, there are other tools that can also be used to monitor the performance of Docker containers. Prometheus is a system for monitoring and alerting, while Grafana is a data visualization and analysis tool. These two tools work together to provide powerful container monitoring capabilities.

The following are the steps on how to use Prometheus and Grafana to monitor Docker containers:

  1. The first step is to install Prometheus and Grafana

You can use the following command To install Prometheus and Grafana:

$ docker run -d -p 9090:9090 --name=prometheus prom/prometheus
$ docker run -d -p 3000:3000 --name=grafana grafana/grafana
  1. The second step is to configure Prometheus to monitor the Docker container

You can monitor the Docker container by modifying the Prometheus configuration file. The following is a sample configuration file:

global:
  scrape_interval: 15s
  external_labels:
    monitor: 'docker-monitor'

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']
  1. The third step is to configure Grafana visual Docker container monitoring

In Grafana, you can use Prometheus as the data source to visualize the Docker container monitoring data. You can configure Grafana's data source and dashboard through the following steps:

  • Visit http://localhost:3000 in the browser to open the Grafana interface.
  • Log in to Grafana, and then add Prometheus as a data source.
  • Create a dashboard and add a monitoring panel.

Through the above steps, you can complete the installation and configuration of Prometheus and Grafana, and realize the monitoring and visualization of Docker containers.

Conclusion

In this article, we introduced how to use tools and methods on Linux to monitor the performance and health of Docker containers in real time. Through tools such as Docker Stats commands, cAdvisor, Prometheus, and Grafana, we can easily monitor and analyze containers. By discovering performance issues with containers in a timely manner, we can improve the stability and reliability of our applications. I hope this article has provided some help to you in performance monitoring when using Docker.

The above is the detailed content of Docker container monitoring on Linux: How to monitor the performance and health status of containers in real time?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn