How do I integrate Docker with Google Cloud Platform?

Die Integration von Docker mit der Google Cloud Platform (GCP) ermöglicht eine effiziente Bereitstellung von Anwendungen. Beginnen Sie mit der Nutzung von Google Container Registry zum Speichern von Images und Google Kubernetes Engine für die Orchestrierung.
Inhaltsverzeichnis
how-do-i-integrate-docker-with-google-cloud-platform-2

Integration von Docker mit der Google Cloud Platform

Docker ist zu einem unverzichtbaren Werkzeug in der modernen Anwendungsentwicklung geworden und ermöglicht es Entwicklern, Anwendungen in leichten, portablen Containern zu erstellen, bereitzustellen und zu verwalten. Google Cloud Platform (GCP) mit ihrer robusten Infrastruktur und integrierten Diensten bietet eine hervorragende Umgebung für die Ausführung von Docker-Containern. In diesem umfassenden Leitfaden werden wir untersuchen, wie man Docker effektiv mit GCP integriert und dabei alles von der Containerisierung über die Bereitstellung, Verwaltung bis hin zur Skalierung abdeckt.

Grundlagen von Docker und GCP

Bevor man mit der Integration beginnt, ist es unerlässlich zu verstehen, was Docker und die GCP bieten.

Was ist Docker?

Docker is a platform that uses containerization to package applications and their dependencies into isolated units known as containers. These containers can run on any system that supports Docker, ensuring consistency across different environments. The key benefits of using Docker include:

  • Portabilität: Container können auf jedem System ausgeführt werden, auf dem Docker installiert ist.
  • Scalability: Containers can be spun up or down quickly to handle varying workloads.
  • Isolation: Each container operates independently, reducing conflicts between applications.

What is Google Cloud Platform?

Die Google Cloud Platform ist eine Suite von Cloud-Computing-Diensten, die auf derselben Infrastruktur läuft, die Google für seine Endnutzerprodukte verwendet. GCP bietet ein breites Spektrum an Diensten, darunter Computing, Speicher, maschinelles Lernen und Netzwerkdienste. Einige wichtige Komponenten im Zusammenhang mit der Docker-Integration sind:

  • Google Kubernetes Engine (GKE): A managed Kubernetes service for deploying, managing, and scaling containerized applications.
  • Cloud Run: Eine vollständig verwaltete Rechenplattform, die Ihre Container automatisch skaliert.
  • Cloud Build: Ein Dienst zur Automatisierung der Erstellung und des Tests von Container-Images.

Ersteinrichtung: Voraussetzungen

Before integrating Docker with GCP, you need to ensure you have the proper setup:

  1. Google Cloud Account: Wenn Sie noch kein Google Cloud-Konto haben, erstellen Sie eines unter Google Cloud Console.

  2. Install Docker: Laden Sie Docker herunter und installieren Sie es auf Ihrem lokalen Rechner. Folgen Sie den official Docker installation guide für anweisungen, die spezifisch für ihr betriebssystem sind.

  3. Google Cloud SDK installieren The Google Cloud SDK (gcloud) provides command-line tools to manage GCP resources. You can download it from the Dokumentation zum Google Cloud SDK.

  4. Set Up a GCP Project: Create a new project in the Google Cloud Console. This project will serve as the environment for your Docker applications.

  5. Abrechnung aktivieren: Stellen Sie sicher, dass die Abrechnung für Ihr GCP-Projekt aktiviert ist.

  6. Enable Required APIs: Gehen Sie zur API-Bibliothek in der Google Cloud Console und aktivieren Sie die folgenden APIs:

    • Container-Registry-API
    • Kubernetes Engine API (if using GKE)
    • Cloud Run API (if using Cloud Run)

Schritt 1: Erstellen eines Docker-Images

Der erste Schritt bei der Integration von Docker in GCP besteht darin, ein Docker-Image für Ihre Anwendung zu erstellen. So geht's.

1.1 Write a Dockerfile

Erstelle eine Datei namens Dockerfile in your application’s root directory. Here’s a basic example for a Node.js application:

# Use Node.js as the base image
FROM node:14

# Set the working directory
WORKDIR /usr/src/app

# Copy package.json and install dependencies
COPY package*.json ./
RUN npm install

# Copy the application code
COPY . .

# Expose the application port
EXPOSE 8080

# Start the application
CMD ["node", "app.js"]

1.2 Erstellen des Docker-Images

Mit deinem Dockerfile Fertig, verwenden Sie den folgenden Befehl, um das Image zu erstellen.

docker build -t gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG] .

Ersetzen [PROJECT_ID], Es wurde kein Text zur Übersetzung bereitgestellt., and [TAG] mit Ihrer Google Cloud-Projekt-ID, dem gewünschten Image-Namen und einem Tag (häufig eine Versionsnummer oder latest).

1.3 Test the Docker Image Locally

Um sicherzustellen, dass Ihr Bild wie erwartet funktioniert, führen Sie es lokal mit folgendem Befehl aus:

docker run -p 8080:8080 gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG]

Öffnen Sie Ihren Browser und navigieren Sie zu http://localhost:8080 um zu prüfen, ob Ihre Anwendung läuft.

Schritt 2: Hochladen des Docker-Images in die Google Container Registry

Sobald Ihr Docker-Image erstellt und getestet wurde, ist der nächste Schritt, es in die Google Container Registry (GCR) hochzuladen.

2.1 Authentifizierung bei Google Cloud

Bevor Sie Ihr Docker-Image pushen, authentifizieren Sie Ihren Docker-Client bei Google Cloud:

gcloud auth configure-docker

2.2 Docker-Image pushen

Now, push your Docker image to GCR with the following command:

docker push gcr.io/[PROJEKT_ID]/[BILD_NAME]:[TAG]

This command uploads your image to GCR, making it accessible for deployment in GCP services.

Schritt 3: Bereitstellen des Docker-Images

Mit Ihrem Docker-Image in der GCR können Sie es über verschiedene GCP-Dienste bereitstellen. Hier behandeln wir die Bereitstellung sowohl auf Google Kubernetes Engine (GKE) als auch auf Cloud Run.

3.1 Bereitstellen auf Google Kubernetes Engine (GKE)

GKE ist eine ausgezeichnete Wahl für den Betrieb containerisierter Anwendungen im großen Maßstab. So stellen Sie Ihr Docker-Image bereit:

3.1.1 Create a GKE Cluster

Erstellen Sie einen Kubernetes-Cluster mit dem folgenden Befehl:

gcloud container clusters create [CLUSTER_NAME] --zone=[ZONE]

Ersetzen [CLUSTER_NAME] and [ZONE] mit Ihrem gewünschten Clusternamen und der GCP-Zone.

3.1.2 Kubernetes-Anmeldeinformationen abrufen

After creating the cluster, configure kubectl to use the new cluster:

gcloud Container-Cluster-Anmeldedaten abrufen [CLUSTER_NAME] --zone=[ZONE]

3.1.3 Stellen Sie Ihre Anwendung bereit

Erstellen Sie ein Kubernetes-Deployment mit folgendem Befehl:

kubectl create deployment [DEPLOYMENT_NAME] --image=gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG]

Ersetzen [BEREITSTELLUNGSNAME] with your desired deployment name.

3.1.4 Ihre Anwendung freigeben

Schließlich machen Sie Ihre Bereitstellung extern zugänglich:

kubectl expose deployment [DEPLOYMENT_NAME] --type=LoadBalancer --port 8080

Sobald die Bereitstellung erfolgt ist, weist GKE Ihrer Anwendung eine externe IP-Adresse zu. Verwenden Sie kubectl Dienste auflisten to retrieve this IP.

3.2 Bereitstellung für Cloud Run

Wenn Sie eine vollständig verwaltete Lösung bevorzugen, ist Cloud Run eine ideale Option. Hier erfahren Sie, wie Sie Ihr Docker-Image bereitstellen:

3.2.1 Deploy Using gcloud Command

Stellen Sie Ihr Docker-Image mit dem folgenden Befehl in Cloud Run bereit:

gcloud run deploy [SERVICE_NAME] --image gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG] --platform managed --region [REGION] --allow-unauthenticated

Ersetzen [SERVICE_NAME], [PROJECT_ID], Es wurde kein Text zur Übersetzung bereitgestellt., [TAG], and [REGION] mit geeigneten Werten.

3.2.2 Greifen Sie auf Ihre Anwendung zu

After deployment, Cloud Run will provide a URL to access your application. Visit this URL in your browser to see your application in action.

Schritt 4: Verwalten und Skalieren von Docker-Anwendungen

Once your Docker application is running on GCP, it’s crucial to manage and scale it effectively.

4.1 Überwachung und Protokollierung

GCP bietet integrierte Überwachungs- und Protokollierungsdienste:

  • Google Cloud Monitoring: Use this service to monitor the performance of your application and infrastructure. Set up alerts based on specific metrics to keep track of your application’s health.

  • Google Cloud Logging: Access logs generated by your application and GCP services. This can help you debug issues and optimize performance.

4.2 Skalierung von Anwendungen

Sowohl GKE als auch Cloud Run bieten automatische Skalierungsfunktionen.

  • Google Kubernetes Engine Sie können Horizontale Pod-Autoscaler (HPAs) konfigurieren, um die Anzahl der Pods automatisch basierend auf der CPU- oder Speichernutzung anzupassen.

  • Cloud Run: Automatically scales based on incoming traffic, with no configuration needed. Simply set the maximum number of instances you want to allow.

4.3 Aktualisieren von Anwendungen

Um Ihre Anwendung zu aktualisieren, erstellen Sie ein neues Docker-Image mit Ihren Änderungen, versehen Sie es mit einem Tag und schieben Sie es erneut an GCR. Anschließend stellen Sie Ihre Anwendung erneut bereit:

  • Für GKE können Sie eine Rolling-Update-Strategie verwenden.

  • For Cloud Run, redeployment with the new image will automatically take place through the command:

    gcloud run deploy [SERVICE_NAME] --image gcr.io/[PROJECT_ID]/[NEW_IMAGE_NAME]:[NEW_TAG]

Fazit

Integrating Docker with Google Cloud Platform is a powerful approach to modern application development and deployment. By leveraging Docker’s containerization capabilities alongside GCP’s robust infrastructure and services, you can build, deploy, and scale applications efficiently. Whether you choose GKE for Kubernetes orchestration or Cloud Run for a fully managed experience, GCP provides the tools necessary to optimize your containerized applications.

This guide has covered the essential steps for integrating Docker with GCP, from creating and pushing images to deploying and managing applications. By following these steps, you can harness the full power of both Docker and Google Cloud Platform to create scalable, portable, and resilient applications.