


Docker unter Linux: Wie automatisiere ich Containertests und -überwachung?
Docker unter Linux: Wie führt man automatisierte Tests und Überwachung von Containern durch?
Mit der rasanten Entwicklung der Containertechnologie hat sich Docker zu einer der beliebtesten Containerisierungsplattformen entwickelt. Bei der Verwendung von Docker für die Anwendungsbereitstellung und -verwaltung ist das automatisierte Testen und Überwachen von Containern besonders wichtig. In diesem Artikel wird die Verwendung von Docker unter Linux zum automatisierten Testen und Überwachen von Containern vorgestellt und entsprechende Codebeispiele bereitgestellt.
1. Automatisiertes Testen von Docker
- Docker-Datei erstellen
Zuerst müssen Sie eine Docker-Datei für die zu testende Anwendung erstellen. Eine Docker-Datei ist eine Textdatei, die eine Reihe von Anweisungen zum Erstellen eines Docker-Images enthält. Hier ist ein einfaches Beispiel einer Docker-Datei:
FROM python:3.8-alpine WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python", "./app.py" ]
Die obige Docker-Datei wurde für eine Python-basierte Anwendung erstellt, indem zunächst ein neues Image basierend auf dem python:3.8-alpine
-Image erstellt wurde. Legen Sie dann das Arbeitsverzeichnis auf /app
fest, kopieren Sie die für die Anwendung erforderliche Abhängigkeitsdatei requirements.txt
in den Container und installieren Sie die Abhängigkeiten. Kopieren Sie dann alle Dateien im aktuellen Verzeichnis in den Container und verwenden Sie die Direktive CMD
, um den Befehl anzugeben, der beim Start des Containers ausgeführt werden soll. python:3.8-alpine
镜像构建一个新的镜像。然后设置工作目录为/app
,将应用程序所需的依赖文件requirements.txt
复制到容器中,并安装依赖。接着将当前目录中的所有文件都复制到容器中,并通过CMD
指令指定容器启动时执行的命令。
- 构建和运行容器
完成Dockerfile的编写后,可以使用docker build
命令构建Docker镜像,如下所示:
$ docker build -t myapp:latest .
上述命令将基于当前目录中的Dockerfile构建名为myapp
的最新版本镜像。
接下来,使用docker run
命令运行容器,并指定相应的端口映射等配置,如下所示:
$ docker run -d -p 8080:8080 --name myapp-container myapp:latest
上述命令将运行名为myapp-container
的容器,并将容器内的8080端口映射到主机的8080端口。
- 编写自动化测试脚本
为了进行自动化测试,需要编写相应的测试脚本。以Python为例,可以使用unittest
模块编写测试用例。以下是一个简单的示例:
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()
上述示例中,setUp
方法用于初始化测试环境,tearDown
方法用于清理测试环境。test_hello
方法是一个具体的测试用例,使用requests
库发送HTTP请求,并进行断言判断返回结果是否符合预期。
- 运行自动化测试
完成测试脚本的编写后,可以通过在主机上运行测试脚本来对容器进行自动化测试。假设测试脚本保存为test_app.py
,可以使用以下命令运行测试脚本:
$ python test_app.py
二、Docker的监控
- 使用Prometheus监控
Prometheus是一款开源的监控系统,它在Docker生态系统中被广泛使用。Prometheus通过采集和存储时间序列数据,并提供灵活的查询和可视化功能,为容器的监控提供了强大的支持。
首先,需要在容器中安装和配置Prometheus。这可以通过在Dockerfile中添加相应的指令来实现,具体步骤如下:
- 下载并安装Prometheus
FROM prom/prometheus:v2.26.0 COPY prometheus.yml /etc/prometheus/
- 创建Prometheus配置文件
prometheus.yml
global: scrape_interval: 5s scrape_configs: - job_name: 'myapp' static_configs: - targets: ['myapp-container:8080']
上述配置文件中,scrape_interval
指定了数据采集的间隔时间,scrape_configs
定义了要监控的目标。
- 启动Prometheus容器
完成Dockerfile和配置文件的编写后,可以使用docker run
命令启动Prometheus容器,如下所示:
$ docker run -d -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:v2.26.0
上述命令将运行名为prometheus
的容器,并将容器内的9090端口映射到主机的9090端口,同时将主机上的prometheus.yml
文件挂载到容器中。
- 访问Prometheus Web界面
完成Prometheus容器的启动后,可以通过浏览器访问http://localhost:9090
Container erstellen und ausführen
docker build
das Docker-Image erstellen, wie unten gezeigt: rrreee Der obige Befehl basiert auf der aktuellen Docker-Datei im Verzeichnis und erstellt das neueste Versionsimage mit dem Namen myapp
.
Als nächstes verwenden Sie den Befehl docker run
, um den Container auszuführen und die entsprechende Portzuordnung und andere Konfigurationen anzugeben, wie unten gezeigt:
- Der obige Befehl führt den Namen
- Um automatisierte Tests durchzuführen, müssen Sie entsprechende Testskripte schreiben. Am Beispiel von Python können Sie das Modul
unittest
zum Schreiben von Testfällen verwenden. Das Folgende ist ein einfaches Beispiel:
myapp-container aus
Container und ordnen Sie den 8080-Port im Container dem 8080-Port des Hosts zu. setUp
zum Initialisieren der Testumgebung und die Methode tearDown
zum Bereinigen verwendet die Testumgebung. Die Methode test_hello
ist ein spezifischer Testfall, der die Bibliothek requests
verwendet, um HTTP-Anfragen zu senden und Aussagen zu treffen, um zu bestimmen, ob die zurückgegebenen Ergebnisse den Erwartungen entsprechen. 🎜- 🎜Automatisierte Tests ausführen🎜Nach Abschluss des Schreibens des Testskripts können Sie automatisierte Tests für den Container durchführen, indem Sie das Testskript auf dem Host ausführen. Vorausgesetzt, dass das Testskript als
test_app.py
gespeichert ist, können Sie den folgenden Befehl verwenden, um das Testskript auszuführen: 🎜🎜rrreee🎜2. Docker-Überwachung verwenden🎜Prometheus ist ein offenes Quellenüberwachungssystem, das im Docker-Ökosystem weit verbreitet ist. Prometheus bietet leistungsstarke Unterstützung für die Containerüberwachung, indem es Zeitreihendaten sammelt und speichert und flexible Abfrage- und Visualisierungsfunktionen bereitstellt. 🎜🎜🎜Zuerst muss Prometheus im Container installiert und konfiguriert werden. Dies kann durch Hinzufügen der entsprechenden Anweisungen in der Docker-Datei erreicht werden. Die spezifischen Schritte sind wie folgt: 🎜🎜🎜Prometheus herunterladen und installieren🎜🎜rrreee🎜🎜Erstellen Sie die Prometheus-Konfigurationsdatei prometheus.yml
🎜🎜rrreee 🎜Die obige Konfigurationsdatei scrape_interval
gibt das Intervall für die Datenerfassung an und scrape_configs
definiert die zu überwachenden Ziele. 🎜- 🎜Starten Sie den Prometheus-Container🎜Nachdem Sie das Schreiben der Docker-Datei und der Konfigurationsdateien abgeschlossen haben, können Sie den Befehl
docker run
verwenden, um den Prometheus-Container zu starten, wie unten gezeigt: 🎜🎜rrreee🎜Der obige Befehl führt den Container mit dem Namen prometheus
aus, ordnet Port 9090 im Container dem Port 9090 auf dem Host zu und mountet die Datei prometheus.yml
auf dem Host in den Container. 🎜- 🎜Zugriff auf die Prometheus-Weboberfläche🎜Nachdem der Start des Prometheus-Containers abgeschlossen ist, können Sie die Prometheus-Weboberfläche öffnen, indem Sie über
http://localhost:9090
auf zugreifen Browser. In dieser Schnittstelle können Daten über die PromQL-Abfragesprache abgefragt und visualisiert werden. 🎜🎜🎜Zusammenfassung🎜🎜In diesem Artikel wird vorgestellt, wie Sie Docker unter Linux zum automatisierten Testen und Überwachen von Containern verwenden. Wenn Sie automatisierte Tests durchführen, müssen Sie eine Docker-Datei erstellen, den Container erstellen und ausführen und das entsprechende Testskript zum Testen schreiben. Bei der Überwachung von Containern können Sie Prometheus zum Sammeln und Speichern von Zeitreihendaten verwenden und PromQL für Abfragen und Visualisierung verwenden. Durch die oben genannten Methoden können Docker-Container besser verwaltet und überwacht werden, um die Stabilität und Zuverlässigkeit von Anwendungen sicherzustellen. 🎜🎜Referenzen: 🎜🎜🎜Offizielle Dokumentation von Docker: https://docs.docker.com/🎜🎜Offizielle Dokumentation von Prometheus: https://prometheus.io/docs/🎜🎜Das obige ist der detaillierte Inhalt vonDocker unter Linux: Wie automatisiere ich Containertests und -überwachung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Schritte zum Erstellen eines Docker -Images: Schreiben Sie eine Dockerfile, die die Build -Anweisungen enthält. Erstellen Sie das Bild im Terminal mit dem Befehl Docker Build. Markieren Sie das Bild und weisen Sie Namen und Tags mit dem Befehl Docker Tag zu.

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Um das Bild in Docker zu speichern, können Sie den Befehl docker comit verwenden, um ein neues Bild zu erstellen, das den aktuellen Status des angegebenen Containers Syntax: Docker Commit [Optionen] Container -ID -Bildname enthält. Um das Bild im Repository zu speichern, können Sie den Befehl Docker Push, Syntax: Docker -Push -Bildname [: Tag] verwenden. Um gespeicherte Bilder zu importieren, können Sie den Befehl Docker Pull, Syntax: Docker Pull Bildname [: Tag] verwenden.

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

Um die Docker -Version zu erhalten, können Sie die folgenden Schritte ausführen: Führen Sie den Befehl Docker "Docker --version" aus, um die Client- und Serverversionen anzuzeigen. Für Mac oder Windows können Sie auch Versionsinformationen über die Registerkarte Version der Docker -Desktop -GUI oder das Menü Docker Desktop anzeigen.

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)
