Docker under Linux: How to perform automated testing and monitoring of containers?
With the rapid development of container technology, Docker has become one of the most popular containerization platforms. In the process of using Docker for application deployment and management, automated testing and monitoring of containers is particularly important. This article will introduce how to use Docker under Linux for automated testing and monitoring of containers, and provide corresponding code examples.
1. Docker automated testing
FROM python:3.8-alpine WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python", "./app.py" ]
The above Dockerfile was created for a Python-based application, first building a new image based on the python:3.8-alpine
image . Then set the working directory to /app
, copy the dependency file requirements.txt
required by the application to the container, and install the dependencies. Then copy all the files in the current directory to the container, and specify the command to be executed when the container starts through the CMD
directive.
docker build
command to build the Docker image, as shown below: $ docker build -t myapp:latest .
The above command will build the latest version image named myapp
based on the Dockerfile in the current directory.
Next, use the docker run
command to run the container and specify the corresponding port mapping and other configurations, as shown below:
$ docker run -d -p 8080:8080 --name myapp-container myapp:latest
The above command will run the container named myapp-container
container, and map the 8080 port in the container to the 8080 port of the host.
unittest
module to write test cases. The following is a simple example: import unittest import requests class TestApp(unittest.TestCase): def setUp(self): self.url = 'http://localhost:8080/' def tearDown(self): pass def test_hello(self): response = requests.get(self.url + 'hello') self.assertEqual(response.status_code, 200) self.assertEqual(response.text, 'Hello, world!') if __name__ == '__main__': unittest.main()
In the above example, the setUp
method is used to initialize the test environment, and the tearDown
method is used to clean up the test environment. The test_hello
method is a specific test case that uses the requests
library to send an HTTP request and make assertions to determine whether the returned result meets expectations.
test_app.py
, you can use the following command to run the test script: $ python test_app.py
2. Docker monitoring
First, Prometheus needs to be installed and configured in the container. This can be achieved by adding the corresponding instructions in the Dockerfile. The specific steps are as follows:
FROM prom/prometheus:v2.26.0 COPY prometheus.yml /etc/prometheus/
prometheus.yml
global: scrape_interval: 5s scrape_configs: - job_name: 'myapp' static_configs: - targets: ['myapp-container:8080']
In the above configuration file, scrape_interval
specifies the interval for data collection, and scrape_configs
defines the target to be monitored.
docker run
command to start the Prometheus container, as shown below: $ docker run -d -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:v2.26.0
The above command will run the container named prometheus
, map the 9090 port in the container to the 9090 port of the host, and mount the prometheus.yml
file on the host. into the container.
http://localhost:9090
through the browser. In this interface, data can be queried and visualized through the PromQL query language. Summary
This article introduces how to use Docker under Linux for automated testing and monitoring of containers. When performing automated testing, you need to create a Dockerfile, build and run the container, and write the corresponding test script for testing. When monitoring containers, you can use Prometheus to collect and store time series data, and use PromQL for query and visualization. Through the above methods, Docker containers can be better managed and monitored to ensure the stability and reliability of applications.
References:
The above is the detailed content of Docker under Linux: How to automate container testing and monitoring?. For more information, please follow other related articles on the PHP Chinese website!