Home Operation and Maintenance Linux Operation and Maintenance Docker under Linux: How to automate container testing and monitoring?

Docker under Linux: How to automate container testing and monitoring?

Jul 30, 2023 pm 07:34 PM
docker automated test monitor

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

  1. Create Dockerfile
    First, you need to create a Dockerfile for the application to be tested. A Dockerfile is a text file that contains a series of instructions for building a Docker image. The following is a simple example Dockerfile:
FROM python:3.8-alpine

WORKDIR /app

COPY requirements.txt ./ 
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./app.py" ]
Copy after login

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.

  1. Building and running containers
    After completing writing the Dockerfile, you can use the docker build command to build the Docker image, as shown below:
$ docker build -t myapp:latest .
Copy after login

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
Copy after login

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.

  1. Write automated test scripts
    In order to perform automated testing, you need to write corresponding test scripts. Taking Python as an example, you can use the 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()
Copy after login

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.

  1. Run automated tests
    After completing the writing of the test script, you can perform automated testing on the container by running the test script on the host. Assuming that the test script is saved as test_app.py, you can use the following command to run the test script:
$ python test_app.py
Copy after login

2. Docker monitoring

  1. Use Prometheus monitoring
    Prometheus is an open source monitoring system that is widely used in the Docker ecosystem. Prometheus provides powerful support for container monitoring by collecting and storing time series data and providing flexible query and visualization functions.

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:

  • Download and install Prometheus
FROM prom/prometheus:v2.26.0

COPY prometheus.yml /etc/prometheus/
Copy after login
  • Create the Prometheus configuration file prometheus.yml
global:
  scrape_interval: 5s

scrape_configs:
  - job_name: 'myapp'
    static_configs:
      - targets: ['myapp-container:8080']
Copy after login

In the above configuration file, scrape_interval specifies the interval for data collection, and scrape_configs defines the target to be monitored.

  1. Start the Prometheus container
    After completing the writing of the Dockerfile and configuration files, you can use the 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
Copy after login

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.

  1. Access the Prometheus Web interface
    After completing the startup of the Prometheus container, you can open the Prometheus Web interface by accessing 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:

  • Docker official documentation: https://docs.docker.com/
  • Prometheus official documentation: https://prometheus.io/ docs/

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!

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to update the image of docker How to update the image of docker Apr 15, 2025 pm 12:03 PM

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

How to copy files in docker to outside How to copy files in docker to outside Apr 15, 2025 pm 12:12 PM

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to exit the container by docker How to exit the container by docker Apr 15, 2025 pm 12:15 PM

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

How to view the docker process How to view the docker process Apr 15, 2025 am 11:48 AM

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

How to save docker image How to save docker image Apr 15, 2025 am 11:54 AM

To save the image in Docker, you can use the docker commit command to create a new image, containing the current state of the specified container, syntax: docker commit [Options] Container ID Image name. To save the image to the repository, you can use the docker push command, syntax: docker push image name [: tag]. To import saved images, you can use the docker pull command, syntax: docker pull image name [: tag].

How to restart docker How to restart docker Apr 15, 2025 pm 12:06 PM

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

See all articles