Sie können einen einzelnen Container auf einer VM oder auf jeder VM in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) ausführen. Dazu geben Sie beim Erstellen einer VM-Instanz oder einer Instanzvorlage ein Container-Image und Konfigurationsparameter an.
In diesem Dokument werden die Konfigurationsoptionen für das Ausführen von Containern auf Compute Engine-Instanzen beschrieben.
Hinweise
- Wenn Sie mit Containern nicht vertraut sind, lesen Sie Container in Compute Engine.
- Sollten Sie mit Docker noch nicht vertraut sein, lesen Sie die Docker-Dokumentation.
- Hier finden Sie Informationen zum Bereitstellen von Containern auf Compute Engine.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Trusted Cloud by S3NS -Dienste und APIs überprüft.
Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
- Set a default region and zone.
Wenn Sie eine Instanz oder eine Instanzvorlage für die Bereitstellung von Containern auf VMs und MIGs erstellen, geben Sie die Containerkonfiguration über die Trusted Cloud -Konsole oder das Google Cloud CLI an.
In den folgenden Abschnitten wird die Konfiguration von Containern auf VM-Instanzen beschrieben. Die folgenden Optionen können allerdings auch beim Erstellen einer Instanzvorlage konfiguriert werden. Verwenden Sie die Trusted Cloud Console oder das Google Cloud CLI, um Optionen für VM-Instanzen in einer Instanzvorlage zu konfigurieren.
Sie können die
docker run
-Befehle verwenden, um einen Container auf einer VM-Instanz zu konfigurieren, auf der Container-Optimized OS ausgeführt wird. Alternativ können Sie dendocker run
-Befehl in einem Startskript angeben, um eine VM zu erstellen und zu konfigurieren. Weitere Informationen finden Sie unter Startskripts zum Bereitstellen von Containern auf VMs verwenden.Neustartrichtlinie angeben
Sie können eine Neustartrichtlinie festlegen, um anzugeben, ob ein Container nach dem Beenden neu gestartet werden soll. Die Standardrichtlinie sieht immer einen Neustart vor. Sie können sie aber auch so definieren, dass nur bei einem Ausfall oder nie ein Neustart erfolgt.
docker run
Verwenden Sie das Flag
--restart
des Befehlsdocker run
. Wiederholte Versuche, einen Container neu zu starten, werden durch das standardmäßige Docker-Verhalten gesteuert, wie es in der Docker-Referenz zu--restart
angegeben ist.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Wählen Sie im Abschnitt Neustartrichtlinie die Neustartrichtlinie für den Container aus.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-restart-policy
, um eine Neustartrichtlinie für Container anzugeben:always
(Standard)on-failure
never
Im folgenden Beispiel wird ein Container mit der Neustartrichtlinie
on-failure
gestartet, was bedeutet, dass der Neustart nur dann erfolgt, wenn der Exit-Code ungleich null ist:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-restart-policy on-failure
Verwenden Sie für die Neustartrichtlinie eines Containers, der auf einer VM ausgeführt wird, den Befehl
gcloud compute instances update-container
mit dem Flag--container-restart-policy
.Container im privilegierten Modus ausführen
Sie können einen Container im privilegierten Modus ausführen, um Zugriff auf alle Geräte auf dem Host zu gewähren. Container werden standardmäßig als "nicht privilegiert" ausgeführt und dürfen nicht auf Geräte zugreifen.
docker run
Verwenden Sie das Flag
--privileged
des Befehlsdocker run
. Weitere Informationen finden Sie unter Laufzeitprivileg und Linux-Berechtigungen.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Wählen Sie Als privilegiert ausführen aus.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Lassen Sie mit dem Flag
--container-privileged
einen Container mit Laufzeitprivilegierung ausführen. Im folgenden Beispiel wird ein busybox-Container im privilegierten Modus gestartet:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-privileged
Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-privileged
können Sie einen Container auf einer VM aktualisieren. Mit dem Flag--no-container-privileged
deaktivieren Sie den privilegierten Modus.Zwischenspeicher für STDIN in der Containerlaufzeit zuordnen
Sie können in der Containerlaufzeit einen Zwischenspeicher für
STDIN
zuordnen, damit derSTDIN
-Stream im Container offen bleibt. Ohne diese Einstellung ergeben Lesevorgänge ausSTDIN
im Container immerEOF
.Neben dem Zuordnen eines Pseudoterminals muss der
STDIN
-Stream offen gehalten werden, um eine interaktive Shell im Container einzurichten und damit der Container die Standardeingabe über eine Pipeline empfangen kann.docker run
Verwenden Sie das Flag
--interactive
(-i
) des Befehlsdocker run
. Weitere Informationen finden Sie in der Dokumentation zum Flag--interactive
.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Wählen Sie Puffer für STDIN zuweisen aus.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-stdin
, um in der Containerlaufzeit einen Zwischenspeicher fürSTDIN
zuzuordnen. Im folgenden Beispiel wird ein Container gestartet undSTDIN
offen gehalten:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin
Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-stdin
können Sie einen Container auf einer VM aktualisieren. Mit dem Flag--no-container-stdin
deaktivieren Sie die Zuordnung eines Zwischenspeichers fürSTDIN
.Pseudoterminal zuordnen
Neben dem Zuordnen eines Zwischenspeichers für STDIN muss Containern ein Pseudoterminal zugeordnet werden, um eine interaktive Shell im Container zu erstellen.
docker run
Verwenden Sie das Flag
--tty (-t)
des Befehlsdocker run
. Weitere Informationen finden Sie unter dem Flag--tty
.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Wählen Sie Pseudoterminal zuweisen aus.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-tty
, um ein Pseudoterminal zuzuordnen. Im folgenden Beispiel wird ein Container gestartet und ein Pseudoterminal zugewiesen:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin \ --container-tty
Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-tty
können Sie einen Container auf einer VM aktualisieren. Geben Sie das Flag--no-container-tty
an, um kein Pseudoterminal zuzuordnen.Standardbefehl überschreiben, der beim Containerstart ausgeführt werden soll
Der
ENTRYPOINT
eines Container-Images gibt an, welche ausführbare Datei beim Containerstart verwendet werden soll, und ermöglicht Ihnen, den Container so auszuführen, als wäre er dieses Binärprogramm.Sie können den Befehl
ENTRYPOINT
des Container-Images überschreiben.docker run
Verwenden Sie das Flag
--entrypoint
(nur Befehl, keine Argumente) des Befehlsdocker run
. Weitere Informationen zuENTRYPOINT
und zum Flag--entrypoint
Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Geben Sie im Feld Befehl einen einzigen ausführbaren Befehl ohne Parameter ein, z. B.
uptime
. - Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-command
, um denENTRYPOINT
des Container-Images zu überschreiben. Im folgenden Beispiel wird der Befehluptime
in einem busybox-Container ausgeführt, um die Zeit seit dem letzten Start anzeigen zu lassen:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "uptime"
Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-command
aktualisieren Sie einen Befehl für einen Container auf einer VM.Den Standardbefehl für einen aktualisierten Container löschen Sie mit dem Flag
--clear-container-command
im Befehlupdate-container
.Argumente an den Befehl ENTRYPOINT des Containers übergeben
Sie können Argumente an den Befehl
ENTRYPOINT
eines Containers übergeben (anhängen) oder den standardmäßigen ContainerbefehlCMD
überschreiben.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Klicken Sie im Abschnitt Argumente auf Argument hinzufügen.
- Geben Sie für jedes Feld ein Befehlsargument ein.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-arg
, um Argumente an einen Container-Image-ENTRYPOINT
-Befehl zu übergeben. Verwenden Sie für jedes Argument ein separates Flag.Im folgenden Beispiel wird der Befehl
/bin/ash
mit den Argumenten-c 'ls -l'
in einem Container ausgeführt, der für die automatische Ausführung von "busybox" eingerichtet wurde:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "/bin/ash" \ --container-arg="-c" \ --container-arg="ls -l"
Mit dem Befehl
gcloud compute instances update-container
und den Flags--container-arg
aktualisieren Sie Befehlsargumente für Container auf einer VM. Bei der Aktualisierung wird die gesamte Argumentliste durch die neue ersetzt.Mit dem Flag
--clear-container-args
im Befehlupdate-container
entfernen Sie alle Argumente aus der Containerdeklaration.Logtreiberoptionen konfigurieren
Wenn Sie Logtreiberoptionen konfigurieren müssen, können Sie ein VM-Startskript erstellen, um Ihre Docker-Konfigurationsdatei mit den benötigten Logging-Optionen zu aktualisieren. Diese Optionen gelten für alle Container, die auf der VM ausgeführt werden und keine Logtreiberoptionen angeben.
Das folgende Startskript legt beispielsweise mehrere Optionen fest, einschließlich einer Option zum Begrenzen der Loggröße des Containers, und startet dann Docker auf der VM neu:
cat <<EOF > /etc/docker/daemon.json { "live-restore": true, "storage-driver": "overlay2", "log-opts": { "max-size": "10m" } } EOF systemctl restart docker
Umgebungsvariablen festlegen
Sie können Umgebungsvariablen in einem Container festlegen. Wird
KEY
mehrmals wiederholt, wird nur der letzte Wert vonKEY
verwendet.docker run
Verwenden Sie das Flag
--env
des Befehlsdocker run
. Hier erfahren Sie, wie die Docker-Engine das Festlegen von Umgebungsvariablen ermöglicht.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Klicken Sie im Bereich Umgebungsvariablen auf Variable hinzufügen.
- Fügen Sie nach Bedarf eine Umgebungsvariable für jede Zeile hinzu oder entfernen Sie sie.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-env
, um Umgebungsvariablen in einem Container festzulegen. Im folgenden Beispiel werden die drei UmgebungsvariablenHOME
,MODE
undOWNER
eingerichtet:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env HOME=/home,MODE=test,OWNER=admin
Mit dem Flag
--container-env-file
können Sie Umgebungsvariablen aus einer lokalen Datei festlegen. Im folgenden Beispiel werden die beiden Umgebungsvariablen anhand der Dateienv.txt
eingerichtet:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env-file ./env.txt
Die Datei
env.txt
enthält Folgendes:# this is a comment HOME=/home MODE=test OWNER=admin
Verwenden Sie den Befehl
gcloud compute instances update-container
mit dem Flag--container-env
oder--container-env-file
, um die Umgebungsvariablen für einen Container auf einer VM zu aktualisieren. Dadurch werden alle in der Containerdeklaration der VM-Instanz vorhandenen Variablen aktualisiert. Variablen, die noch nicht in der Containerdeklaration enthalten sind, werden hinzugefügt.Mit dem Flag
--remove-container-env
können Sie beim Aktualisieren von Containern auf einer VM Umgebungsvariablen entfernen. Im folgenden Beispiel werden die UmgebungsvariablenMODE
undOWNER
entfernt:gcloud compute instances update-container busybox-vm \ --remove-container-env MODE,OWNER
Falls eine der angegebenen Umgebungsvariablen nicht existiert, wird sie ignoriert.
Hostverzeichnis als Daten-Volume bereitstellen
Sie können ein Verzeichnis aus einer Host-VM in einem Container bereitstellen.
docker run
Verwenden Sie das Flag
--volume
und das Flag--mount
mit dem Mounttype=bind
des Befehlsdocker run
. Hier erfahren Sie, wie die Docker-Engine ein Hostverzeichnis als Daten-Volume bereitstellt.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Klicken Sie im Abschnitt Volume-Bereitstellungen auf Volume hinzufügen.
Wählen Sie in der Liste Volume-Typ die Option Verzeichnis aus und gehen Sie so vor:
- Geben Sie im Feld Bereitstellungspfad einen Bereitstellungspfad in einer Container-Verzeichnisstruktur an, in der Sie ein Hostverzeichnis bereitstellen möchten.
- Geben Sie im Feld Hostpfad einen Hostpfad zu dem Hostverzeichnis an, das bereitgestellt werden soll.
- Geben Sie in der Liste Modus an, ob Sie das Verzeichnis im Lese-/Schreibmodus oder im Lesemodus bereitstellen möchten.
Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-mount-host-path
, um ein Host-VM-Verzeichnis in einem Container bereitzustellen. Im folgenden Beispiel wird das Hostverzeichnis/tmp
im Container unter/logs
im Lese-/Schreibmodus bereitgestellt:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-host-path mount-path=/logs,host-path=/tmp,mode=rw
Durch
mode=ro
wird das Hostverzeichnis im Lesemodus bereitgestellt.Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-mount-host-path
aktualisieren Sie Hostverzeichnis-Bereitstellungen für einen Container. Verwenden Sie das Flag--remove-container-mounts
, um Volume-Bereitstellungen mit den angegebenen Bereitstellungspfaden zu entfernen. Im folgenden Beispiel wird die Hostpfadbereitstellung mitmount-path=/logs
entfernt:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /logs
Falls der angegebene Bereitstellungspfad nicht vorhanden ist, wird er ignoriert.
tmpfs-Dateisystem als Daten-Volume bereitstellen
Sie können ein leeres tmpfs-Dateisystem in einem Container bereitstellen.
Ein leeres tmpfs-Dateisystem ähnelt einem
EmptyDir
-Volume von Google Kubernetes Engine mitmedium:Memory
. Im Unterschied zu Docker, wotmpfs
-Daten beim Neustart von Containern gelöscht werden, bleiben mittmpfs
in einem Compute Engine-Container das Volume und seine Daten über Neustarts von Containern hinweg erhalten und werden nur beim Neustart der VM gelöscht.Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Klicken Sie im Abschnitt Volume-Bereitstellungen auf Volume hinzufügen.
- Wählen Sie in der Liste Volume-Typ die Option TmpFS aus.
- Geben Sie im Feld Bereitstellungspfad einen Bereitstellungspfad in einer Container-Verzeichnisstruktur an, in der Sie ein TmpFS-Volume bereitstellen möchten.
- Geben Sie in der Liste Modus an, ob Sie das TmpFS-Volume im Lese-/Schreibmodus oder im Lesemodus bereitstellen möchten.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie das Flag
--container-mount-tmpfs
, um ein leerestmpfs
-Dateisystem in einem Container bereitzustellen. Im folgenden Beispiel wird im Container eintmpfs
-Dateisystem unter/cache
im Lese-/Schreibmodus bereitgestellt:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-tmpfs mount-path=/cache
Mit dem Befehl
gcloud compute instances update-container
und dem Flag--container-mount-tmpfs
können Sietmpfs
-Bereitstellungen für einen Container aktualisieren. Verwenden Sie das Flag--remove-container-mounts
, umtmpfs
-Bereitstellungen mit dem angegebenen Bereitstellungspfad beim Aktualisieren zu entfernen. Im folgenden Beispiel wird dietmpfs
-Bereitstellung mitmount-path=/cache
entfernt:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /cache
Falls der angegebene Bereitstellungspfad nicht vorhanden ist, wird er ignoriert.
Nichtflüchtigen Speicher als Daten-Volume bereitstellen
Mit Container-Optimized OS 69 oder höher können Sie nichtflüchtige Speicher von einer Host-VM in einen Container laden.
Voraussetzungen
- Das Laufwerk muss ein
ext4
-Dateisystem oder kein Dateisystem haben. Ohne anfängliches Dateisystem formatiert der Container-Start-Agent das Laufwerk mitext4
. Nur das Anhängen mit Lese-/Schreibzugriff und das Bereitstellen werden unterstützt. - Das Laufwerk muss an die VM angehängt werden.
Es werden sowohl Geräte mit als auch ohne Partitionen unterstützt. Bei Bereitstellungen mit Partitionen darf das Laufwerk nicht leer sein. Es muss bereits eine Partitionstabelle enthalten.
Console
Gehen Sie zur Seite Instanz erstellen.
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Führen Sie auf der Seite Container konfigurieren folgende Schritte aus:
- Geben Sie einen Namen für das Container-Image an.
- Klicken Sie im Abschnitt Volume-Bereitstellungen auf Volume hinzufügen.
- Wählen Sie in der Liste Volume-Typ die Option Laufwerk aus.
- Geben Sie im Feld Bereitstellungspfad einen Pfad in der Container-Verzeichnisstruktur an, in der Sie den nichtflüchtigen Speicher bereitstellen möchten.
- Wählen Sie in der Liste Laufwerkname ein vorhandenes bereitzustellendes Laufwerk aus.
- Geben Sie im Feld Partition die Partitionsnummer an, die bereitgestellt werden soll, wenn das Laufwerk eine Partitionstabelle hat. Wenn das Laufwerk keine Partitionen hat, lassen Sie dieses Feld leer.
- Geben Sie in der Liste Modus an, ob Sie das Verzeichnis im Lese-/Schreibmodus oder im Lesemodus bereitstellen möchten.
- Klicken Sie auf Auswählen, um die Containerdetails zu bestätigen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie den Befehl
gcloud compute instances create-with-container
odergcloud compute instances update-container
mit dem Flag--container-mount-disk
, um einen nichtflüchtigen Speicher in einem Container bereitzustellen.Im folgenden Beispiel werden die beiden Laufwerke
my-data-disk
undmy-scratch-disk
im Container unter den Bereitstellungspfaden/disks/data-disk
und/disks/scratch-disk
bereitgestellt.gcloud compute instances create-with-container busybox-vm \ --disk name=my-data-disk \ --create-disk name=my-scratch-disk,auto-delete=yes,image=ubuntu-1710-artful-v20180315,image-project=ubuntu-os-cloud \ --container-image docker.io/busybox:1.27 \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=ro \ --container-mount-disk mount-path="/disks/scratch-disk",name=my-scratch-disk
Das Flag
--disk
hängt das Laufwerkmy-data-disk
an, das Flag--create-disk
erstellt das Laufwerkmy-scatch-disk
und hängt es an und das Flag--container-mount-disk
stellt die angehängten Laufwerke für den Container bereit. Da fürmy-scratch-disk
keinmode
angegeben ist, wird dieses Laufwerk standardmäßig im Lese-/Schreibmodus für den Container bereitgestellt.Verwenden Sie den Befehl
gcloud compute instances update-container
mit dem Flag--container-mount-disk
, um zusätzliche angehängte Laufwerke bereitzustellen oder vorhandene Laufwerksbereitstellungen zu ändern.Verwenden Sie das Flag
--remove-container-mounts
, um eine Laufwerks-Volume-Bereitstellung mit dem angegebenen Bereitstellungspfad zu entfernen. Das folgende Beispiel ändert den Bereitstellungsmodus vonmy-data-disk
zu Lesen/Schreiben und entfernt die Laufwerksbereitstellung mitmount-path="/disks/scratch-disk"
.gcloud compute instances update-container busybox-vm \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=rw \ --remove-container-mounts "/disks/scratch-disk"
Falls der Bereitstellungspfad, den Sie an das Flag
--remove-container-mounts
übergeben, nicht existiert, wird er ignoriert.Containerports veröffentlichen
VMs mit Containern nutzen den Host-Netzwerkmodus. In diesem Modus teilt ein Container den Host-Netzwerkstack und alle Schnittstellen des Hosts sind für den Container zugänglich.
Containerports haben eine Eins-zu-Eins-Zuordnung zu den Host-VM-Ports. Zum Beispiel wird der Containerport 80 dem Host-VM-Port 80 zugeordnet. Compute Engine unterstützt nicht das Port-Publishing-Flag (
-p
). Sie müssen es auch nicht angeben, damit die Zuordnung funktioniert.Zum Veröffentlichen der Ports eines Containers müssen Sie Firewallregeln konfigurieren, um den Zugriff auf die Ports der Host-VM zu ermöglichen. Auf die entsprechenden Ports des Containers kann gemäß den Firewallregeln automatisch zugegriffen werden.
Beispiel: Port 80 für einen NGINX-Container veröffentlichen
docker run
Konfigurieren Sie das Flag
--network="host"
, wenn Sie den Befehldocker run
verwenden. Weitere Informationen finden Sie unter Einstellungen für das Containernetzwerk und Hostmodus.gcloud
Das folgende Beispiel zeigt, wie Sie eine VM-Instanz mit einem NGINX-Container erstellen und Traffic zum Port 80 des Containers zulassen.
Erstellen Sie eine VM-Instanz mit einem NGINX-Container:
gcloud compute instances create-with-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:1.15 \ --tags http-server
Der Container teilt den Netzwerkstack der Host-VM, und Port 80 des Containers wird über den Port 80 der Host-VM veröffentlicht. Das Tag
http-server
wird als Ziel-Tag für die Firewallregel verwendet, die im nächsten Schritt erstellt wird.Erstellen Sie eine Firewallregel, um Verbindungen zu Port 80 der VM-Instanz zu ermöglichen. Diese Firewallregel ermöglicht HTTP-Verbindungen zu VM-Instanzen mit dem Tag
http-server
.gcloud compute firewall-rules create allow-http \ --allow tcp:80 --target-tags http-server
Der Container beginnt automatisch, Traffic über Port 80 zu empfangen. Sie müssen keine zusätzliche Konfiguration vornehmen.
Sie können Firewallregeln für Kombinationen "Host-VM-Protokoll:Port" erstellen. Das Protokoll ist dabei entweder
tcp
oderudp
. Diese Regeln steuern den Zugriff von außerhalb der VM auf die entsprechenden Containerports.
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-08 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-08 (UTC)."],[[["This document outlines how to configure and manage containers on Google Compute Engine, including setting up authentication, configuring VM instances, and creating instance templates for container deployment."],["Containers can be customized with various settings, such as restart policies, privileged mode, STDIN buffer allocation, pseudo-TTY allocation, and overriding the default container command, which can be done using the Google Cloud console or the `gcloud` CLI."],["Environment variables can be set directly or via files for containers, and volumes can be mounted from host directories, tmpfs file systems, or persistent disks, offering flexible data management options."],["Container ports are published by default using the host network mode, and access to these ports is controlled through configuring Compute Engine firewall rules, simplifying network configuration for containers."],["Managing container logs, learning how to deploy containers and managing container-optimized OS are part of the \"what's next\" section, after configuring containers on google compute engine."]]],[]] -