Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Docker für die automatisierte Bereitstellung und das Rollback von Containern

So verwenden Sie Docker für die automatisierte Bereitstellung und das Rollback von Containern

WBOY
WBOYOriginal
2023-11-07 13:40:591074Durchsuche

So verwenden Sie Docker für die automatisierte Bereitstellung und das Rollback von Containern

Angesichts der Popularität von Cloud Computing und Microservices wird Docker als leichtgewichtige Virtualisierungstechnologie häufig bei der Containerbereitstellung eingesetzt. Docker bietet die Vorteile einer schnellen Bereitstellung, Ressourcenisolierung und einfachen Verwaltung, was den Anwendungswartungs- und Freigabeprozess erheblich vereinfachen kann. In diesem Artikel wird die Verwendung von Docker für die automatisierte Bereitstellung und das Rollback von Containern vorgestellt und einige spezifische Codebeispiele bereitgestellt.

1. Automatisierte Docker-Bereitstellung

Die automatisierte Docker-Bereitstellung bezieht sich auf das Packen der Anwendungsumgebung und der zugehörigen Abhängigkeiten in ein Docker-Image, indem Dockerfile-Dateien und Docker Compose-Dateien während des Anwendungsentwicklungs- und Testprozesses geschrieben und automatisch lokal oder auf einem Remotestandort bereitgestellt werden Server.

1. Schreiben Sie eine Docker-Datei

Dockerfile ist eine Textdatei, die alle Anweisungen und Befehle enthält, die die Anwendung zum Erstellen des Images benötigt. Sie können eine Dockerfile-Datei schreiben, um die für die Anwendung erforderliche Umgebung, Abhängigkeiten und Startbefehle zu definieren. Sie müssen nur einen einzigen Befehl ausführen, um das für die Anwendung erforderliche Docker-Image automatisch zu erstellen.

Das Folgende ist ein Beispiel für die Verwendung einer Docker-Datei zum Erstellen einer Node.js-Anwendung:

FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Die obige Docker-Datei gibt das Basis-Image als alpines Basis-Image der Node.js 14-Version an, definiert das Arbeitsverzeichnis als /app und packets.json und package-lock.json in das Arbeitsverzeichnis kopieren, npm install ausführen, um die Abhängigkeiten zu installieren, den Anwendungscode in das Arbeitsverzeichnis kopieren, den vom Container zuzuordnenden Port als 3000 definieren und schließlich npm start to ausführen Starten Sie die Anwendung.

2. Docker Compose-Dateien schreiben

Docker Compose ist ein offiziell von Docker bereitgestelltes Tool zum Definieren und Ausführen von Anwendungen, die aus mehreren Containern bestehen. Durch das Schreiben einer Docker Compose-Datei können Sie die von der Anwendung benötigten Dienste, das Image und die Startmethode des Containers, das Netzwerk und die Abhängigkeiten zwischen Containern und andere Informationen sowie die Ressourcengrenzen und die Erweiterung des Containers definieren.

Das Folgende ist ein Beispiel für die Verwendung von Docker Compose zum Bereitstellen einer Node.js-Anwendung:

version: '3'

services:
  app:
    build: .
    ports:
      - '8080:3000'
    environment:
      NODE_ENV: production
    restart: always

In der obigen Docker Compose-Datei ist ein Dienst mit dem Namen „app“ definiert. Verwenden Sie den Build-Befehl, um das Image zu erstellen, und ordnen Sie den Container-Port dem zu Host-Port 8080, definieren Die Umgebungsvariable NODE_ENV ist Produktion, und der angegebene Container wird nach einem Absturz automatisch neu gestartet.

3. Automatisierte Bereitstellungsskripte

Um den Anwendungsbereitstellungsprozess automatisierter zu gestalten, können Sie einige Bereitstellungsskripte schreiben, um den gesamten Prozess des automatischen Erstellens, Pushens und Bereitstellens von Docker-Images zu realisieren. Das Folgende ist ein Beispiel für die Verwendung von Docker Compose zum automatischen Bereitstellen einer Node.js-Anwendung:

#!/bin/bash

# 定义应用名称和版本号
APP_NAME='nodejs-app'
TAG=$(git rev-parse --short HEAD)

# 构建Docker镜像
docker build -t $APP_NAME:$TAG .

# 推送Docker镜像到仓库
docker push $APP_NAME:$TAG

# 使用Docker Compose部署应用
docker-compose up -d

Verwenden Sie im obigen Skript den Befehl git rev-parse, um die Versionsnummer des neuesten Codes abzurufen, das Image zu erstellen und es per Push zu übertragen Öffnen Sie das Docker-Warehouse und verwenden Sie schließlich Docker Compose, um die Anwendung zu starten (Der Parameter -d gibt an, dass sie im Hintergrund ausgeführt wird).

2. Rollback des Docker-Containers

Während des Anwendungsentwicklungs- und Testprozesses treten zwangsläufig einige Codefehler oder Inkompatibilitätsprobleme auf. Zu diesem Zeitpunkt müssen wir die Anwendungsversion zurücksetzen und den vorherigen Zustand der Anwendung wiederherstellen.

Docker-Container bieten eine einfache Rollback-Methode, bei der die Versionsnummer über Tags angegeben wird. Sie können beim Starten des Containers verschiedene Image-Versionen auswählen, um ein Rollback der Anwendungsversion zu implementieren.

1. Tags verwenden

Bei der Angabe der Versionsnummer in der Dockerfile-Datei können Sie Tags verwenden, um die Anwendungsversion zu identifizieren. Zum Beispiel:

FROM node:14-alpine

LABEL version="1.0.0"

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Die LABEL-Anweisung wird in der obigen Docker-Datei verwendet, um die Versionsnummer der Anwendung als 1.0.0 zu identifizieren.

Nach dem Erstellen des Images können Sie mit dem Docker-Tag-Befehl ein neues Tag erstellen, zum Beispiel:

docker tag nodejs-app:latest nodejs-app:1.0.0

Beim Definieren des Dienstes in der Docker Compose-Datei können Sie das zu verwendende Tag angeben, zum Beispiel:

version: '3'

services:
  app:
    image: nodejs-app:1.0.0
    ports:
      - '8080:3000'
    environment:
      NODE_ENV: production
    restart: always

2. Rollback-Skript zurückgeben

Um das Versions-Rollback zu erleichtern, können Sie ein Rollback-Skript schreiben, um das Rollback der Anwendungsversion zu implementieren, indem Sie die zu verwendende Image-Version angeben. Das Folgende ist ein Beispiel für die Verwendung von Docker Compose zum Zurücksetzen einer Node.js-Anwendung:

#!/bin/bash

# 定义应用名称和版本号
APP_NAME='nodejs-app'
TAG='1.0.0'

# 更新Docker Compose文件中使用的镜像版本
sed -i "s|$APP_NAME:.*|$APP_NAME:$TAG|g" docker-compose.yml

# 回滚应用版本
docker-compose up -d

Ändern Sie im obigen Skript direkt die in der Docker Compose-Datei verwendete Image-Versionsnummer und starten Sie den Container.

3. Zusammenfassung

Dieser Artikel stellt die Verwendung von Docker für die automatisierte Bereitstellung und das Rollback von Containern vor und enthält einige spezifische Codebeispiele. Durch die automatisierte Bereitstellung können wir Anwendungen schnell bereitstellen und aktualisieren sowie bei Bedarf ein Rollback von Versionen durchführen und so die Anwendungsstabilität und -zuverlässigkeit verbessern. In tatsächlichen Anwendungen ist es jedoch erforderlich, die Bereitstellungsstrategie entsprechend den spezifischen Geschäftsanforderungen und der Umgebung zu optimieren, um den normalen Betrieb der Anwendung sicherzustellen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Docker für die automatisierte Bereitstellung und das Rollback von Containern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn