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

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

WBOY
WBOYOriginal
2023-07-28 21:09:211777browse

Docker container monitoring on Linux: How to monitor the running status of the container in real time?

Introduction:
With the widespread application of container technology, Docker has become one of the most popular containerization platforms. However, simply creating and running a container is not enough; monitoring the container to ensure its stable operation is crucial. This article will introduce how to monitor the running status of Docker containers in real time on the Linux platform and provide corresponding code examples.

1. The Importance of Docker Container Monitoring
By monitoring Docker containers, we can track the CPU usage, memory usage, network traffic, disk IO and other indicators of the container in real time, so as to discover and solve potential problems in a timely manner. question. At the same time, monitoring can also help us optimize resource utilization and improve overall system performance.

2. Use cAdvisor to monitor Docker containers
cAdvisor is an open source tool specifically used to monitor the resource usage of containers. It can communicate with the Docker engine through the Docker API on the Docker host and collect various indicators within the container.

  1. Installing cAdvisor
    Installing cAdvisor on a Linux system is very simple. We can use the following command to install:
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

This command will start a cAdvisor container locally and map it to the 8080 port of the host.

  1. View monitoring results
    Visit http://localhost:8080 in the browser to view the cAdvisor monitoring interface. This interface can display various indicators of the container, including CPU, memory, network, disk, etc.

3. Use Docker API to monitor containers
In addition to using cAdvisor, we can also monitor the running status of containers through Docker API. Docker API provides a series of interfaces to query and manage container information.

  1. Install Docker SDK for Python
    First, we need to install Docker SDK for Python, which is the Python library officially provided by Docker and is used to interact with the Docker API. We can install it using the following command:
pip install docker
  1. Monitoring containers using code
    Here is a sample code to monitor a container using Docker SDK for Python:
import docker

def monitor_container(container_id):
    client = docker.from_env()
    container = client.containers.get(container_id)
    
    stats = container.stats(stream=True)
    for stat in stats:
        # 处理容器的统计数据
        print(stat)

This code first uses docker.from_env() to create a Docker client instance, and then obtains the specified container object through client.containers.get(container_id). Then, obtain the real-time statistical data of the container through container.stats(stream=True) and process it accordingly.

4. Summary
This article introduces how to monitor the running status of Docker containers in real time on Linux. By using cAdvisor and Docker API, we can easily obtain various indicators of the container and perform performance optimization and troubleshooting accordingly. I hope this article will help you understand Docker container monitoring.

For code samples and API documentation, please refer to the following link:

  • cAdvisor: https://github.com/google/cadvisor
  • Docker SDK for Python: https ://docker-py.readthedocs.io/

The above is the detailed content of Docker container monitoring on Linux: How to monitor the running 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