Detaillierte Schritte zum Erstellen, Ausführen, Veröffentlichen und erstmaligen Abrufen eines Docker-Images

Detaillierte Schritte zum Erstellen, Ausführen, Veröffentlichen und erstmaligen Abrufen eines Docker-Images

1. Einleitung

Wenn Sie früher mit dem Schreiben von Python-Anwendungen beginnen wollten, bestand der erste Schritt darin, die Python-Laufzeitumgebung auf Ihrem Computer zu installieren. Die installierte Umgebung musste mit der Online-Umgebung übereinstimmen, was ziemlich mühsam war.

Mit Docker können Sie ohne Installation ein portables Image einer Python-Laufzeitumgebung aus dem offiziellen Docker-Verzeichnis oder anderen Repositories abrufen. Sie können Ihre Anwendung dann auf der Grundlage dieses Images entwickeln, wodurch sichergestellt wird, dass Ihre Anwendung, Abhängigkeiten und Laufzeit zusammen ausgeführt werden.

2. Erstellen Sie ein Python-Image

2.1. Um Ihr eigenes Image zu erstellen, müssen Sie zunächst eine Datei mit dem Namen „Dockerfile“ erstellen, um die erforderlichen Schritte zum Erstellen eines Images und Ausführen eines Containers zu definieren. Jede Anweisung in einer Docker-Datei erstellt eine Ebene im Image. Wenn Sie Ihr Docker-File ändern und das Image neu erstellen, werden nur die Ebenen neu erstellt, die geändert wurden. Dies ist einer der Gründe, warum Images im Vergleich zu anderen Virtualisierungstechnologien leicht, klein und schnell sind.

Erstellen Sie ein leeres Verzeichnis, erstellen Sie eine Datei mit dem Namen Dockerfile, kopieren Sie den folgenden Inhalt, fügen Sie ihn in die Datei ein und speichern Sie ihn.

# Verwenden Sie eine offizielle Python-Laufzeit als übergeordnetes Image
VON python:2.7-slim
# Stellen Sie das Arbeitsverzeichnis auf /app ein
ARBEITSVERZEICHNIS /app
# Kopieren Sie den aktuellen Verzeichnisinhalt in den Container unter /app
HINZUFÜGEN ./app
# Installieren Sie alle benötigten Pakete, die in requirements.txt angegeben sind
Führen Sie den Befehl pip install --trusted-host pypi.python.org -r requirements.txt aus.
# Port 80 für die Welt außerhalb dieses Containers verfügbar machen
AUSSETZEN 80
# Umgebungsvariable definieren
ENV NAME Welt
# Führen Sie app.py aus, wenn der Container gestartet wird
CMD ["python", "app.py"]

2.2 Erstellen Sie die Dateien requirements.txt und app.py im selben Verzeichnis wie die Dockerfile-Datei. Aufgrund des ADD-Befehls in der Dockerfile-Datei werden die beiden oben genannten Dateien zum endgültigen Image hinzugefügt. Aufgrund des EXPOSE-Befehls kann auf den Inhalt von app.py zugegriffen werden, indem Port 80 des Containers aufgerufen wird. Hinweis: Port 80 bezieht sich hier auf den vom Container freigegebenen Port, nicht auf den Port der tatsächlichen Maschine.
Anforderungen.txt

Flasche
Redis

app.py

aus Flasche importieren Flasche
von Redis importieren Redis, RedisError
Betriebssystem importieren
Socket importieren
# Mit Redis verbinden
redis = Redis(Host="redis", db=0, Socket-Verbindungstimeout=2, Socket-Timeout=2)
App = Flask(__name__)
@app.route("/")
def hallo():
  versuchen:
    Besuche = redis.incr("Zähler")
  außer RedisError:
    Besuche = "<i>Verbindung zu Redis nicht möglich, Zähler deaktiviert</i>"
  html = "<h3>Hallo {name}!</h3>" \
      "<b>Hostname:</b> {Hostname}<br/>" \
      "<b>Besuche:</b> {Besuche}"
  return html.format(name=os.getenv("NAME", "Welt"), hostname=socket.gethostname(), Besuche=Besuche)
wenn __name__ == "__main__":
  app.run(Host='0.0.0.0', Port=80)

2.3 Packen Sie unsere Anwendung in einen Spiegel und führen Sie sie im DockerFile-Verzeichnis aus. Dadurch wird ein Docker-Image erstellt, das wir mit -t taggen, damit das Image einen aussagekräftigen Namen hat.

Docker-Build -t freundliches Hallo

3. Ausführen des Images

Führen Sie die Anwendung aus, indem Sie mit -p den Port 4000 auf Ihrem Computer dem vom Container freigegebenen Port 80 zuordnen:

docker run -p 4000:80 freundliches Hallo 

Sie können auch den Curl-Befehl in der Shell verwenden, um denselben Inhalt anzuzeigen.

$ curl http://localhost:4000
<h3>Hallo Welt!</h3><b>Hostname:</b> 8fc990912a14<br/><b>Besuche:</b> <i>Verbindung zu Redis nicht möglich, Zähler deaktiviert</i>

Drücken Sie Strg+C, um die Anwendung zu beenden

Lassen Sie uns nun die Anwendung im Hintergrund ausführen:

docker run -d -p 4000:80 freundliches Hallo

Alle Containerinformationen anzeigen

$ Docker-Container ls
CONTAINER-ID-BILDBEFEHL ERSTELLT
1fa4ab2cf395 freundliches Hallo "python app.py" vor 28 Sekunden

Verwenden Sie nun „Docker Container Stop“, um den Prozess unter Verwendung der CONTAINER-ID zu beenden, wie unten gezeigt:

Docker-Container stoppen 1fa4ab2cf395

4. Bild freigeben

4.1. Ich verwende das Docker-Register von Alibaba Cloud, das meiner Meinung nach schneller sein sollte. Zunächst benötigen Sie ein Alibaba Cloud-Konto. Melden Sie sich dann an, um ein neues Lager zu erstellen und den Namespace und andere Informationen festzulegen.

4.2 Melden Sie sich beim Docker-Register von Alibaba Cloud an. Für nachfolgende Vorgänge ist eine Anmeldung erforderlich.

sudo docker login --username=admin registry.cn-hangzhou.aliyuncs.com

4.3 Markieren Sie das Bild. Das Tag ist optional. Wenn nicht, ist der Standardwert „latest“.

Format:

Docker-Tag Image-Name Registry-URL/Namespace/Repository-Name:[Tag]

Zum Beispiel

Docker-Tag-freundlichHallo registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

Anzeigen der Liste lokaler Spiegel

Docker-Image ls

4.4 Bild freigeben

Docker-Push-Registrierung.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

4.5 Jetzt können Sie den folgenden Befehl auf jeder Maschine ausführen, um das Image auszuführen

docker run -p 4000:80 registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

4.6 Ziehen Sie das Bild

Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • So veröffentlichen Sie Docker-Images im Docker Hub
  • So konfigurieren Sie Docker in IDEA2021.2, um das Springboot-Projekt abzubilden und mit einem Klick freizugeben
  • Analyse des Docker-Compose-Image-Release-Prozesses des Springboot-Projekts
  • So veröffentlichen Sie ein lokal erstelltes Docker-Image auf Dockerhub
  • So verwenden Sie Docker zum Veröffentlichen lokaler Bilder in der Alibaba Cloud

<<:  Mysql löscht doppelte Daten, um die kleinste ID-Lösung beizubehalten

>>:  Zwei Möglichkeiten zum Schreiben gespeicherter Prozeduren in MySQL mit und ohne Rückgabewerte

Artikel empfehlen

Prinzip und Anwendung der MySQL-Verbindungsabfrage

Überblick Eine der leistungsstärksten Funktionen ...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

DNS-Konfigurationsmethode für den Linux Domain Name Service

Was ist DNS Der vollständige Name von DNS lautet ...

IIS7 IIS8 Reverse-Proxy-Regeln schreiben, installieren und konfigurieren

Zweck: Station A als sekundäres Verzeichnis von S...

Detaillierte Erklärung zum schnellen Erstellen einer Blog-Website mit Docker

Inhaltsverzeichnis 1. Vorbereitung 2. Bereitstell...

Der Unterschied zwischen Animation und Übergang

Der Unterschied zwischen CSS3-Animation und JS-An...

Diagramm der Installationszusammenfassung für MySQL 8.0.11

Installationsumgebung: CAT /etc/os-release Zeigt ...

Diskussion zu Bildpfadproblemen in CSS (dasselbe Paket/anderes Paket)

In CSS-Dateien müssen Sie manchmal einen Hintergru...

Eine kurze Diskussion über die Anpassung mobiler Endgeräte

Vorwort Beim Schreiben von Front-End-Code kommt m...

CentOS8-Installationstutorial für JDK8/Java8 (empfohlen)

Vorwort Zuerst wollte ich es mit wget auf CentOS8...