So erstellen Sie Ihr eigenes Image mit Dockerfile

So erstellen Sie Ihr eigenes Image mit Dockerfile

1. Erstellen Sie ein leeres Verzeichnis

$ cd /home/xm6f/dev 
$ mkdir meineApp
$ cd meineAnwendung/

2.vim Dockerfile, der Inhalt ist wie folgt:

## Eine grundlegende Python-Laufzeitumgebung VON Python
## Legen Sie das Arbeitsverzeichnis WORKDIR /app fest
## Kopieren Sie den aktuellen Inhalt des Systemordners in das App-Verzeichnis des Containers ADD ./app
## Installieren Sie die erforderlichen Abhängigkeitspakete. RUN pip install -r softwares.txt
## Offener Port für den Zugang von außen zum Container EXPOSE 80
EXPOSE 3088
EXPOSE 8080
EXPOSE 8066
## Umgebungsvariable ENV NAME definieren HELLO
## Führen Sie den Befehl CMD ["python","app.py"] aus.

3. Abhängigkeiten installieren

vim softwares.txt, der Inhalt ist wie folgt:

Flasche
Redis

4.vim app.py, der Inhalt ist wie folgt:

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)

5. Kompilieren

$ docker build -t meineersteapp.

6. Überprüfen Sie, ob ein neues Bild generiert wurde

$ Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
myfirstapp latest 01ea1129a831 vor 2 Stunden 699MB

7. Starten Sie das Image

$ docker run -p 4000:80 meineersteApp

Es kann auch im Hintergrund ausgeführt werden:

$ docker run -d -p 4000:80 meineersteApp

8. Zugang zu den Diensten

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

Oder verwenden Sie einen Browser, um auf den Dienst zuzugreifen: http://192.168.1.160:4000

9. Sehen Sie sich das aktuell laufende Bild an

$ Docker ps
CONTAINER ID MAGE KOMMANDO ERSTELLT STATUS PORTS NAMEN
2db45cab2bb4 myfirstapp "python app.py" vor 2 Minuten Vor 2 Minuten 0.0.0.0:4000->80/tcp elastic_wilson

10. Beenden Sie die Spiegelung

$ Docker-Stopp 2db45cab2bb4

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der CMD- und ENTRYPOINT-Befehle im Dockerfile
  • So schreiben Sie das beste Dockerfile
  • Detaillierte Erklärung der COPY- und ADD-Befehle in Dockerfile
  • Eine detaillierte Einführung in die Dockerfile-Image-Erstellungsdatei und verwandte Befehle in Docker
  • Detaillierte Erläuterung der Verwendung von Dockerfile zum Erstellen eines MySQL-Images und zum Implementieren der Dateninitialisierung und Berechtigungseinstellung
  • Detaillierte Erläuterung der spezifischen Verwendung der ENV-Anweisung in Dockerfile
  • Beispiele für die Verwendung von Dockerfile
  • Dockerfile zum Erstellen des offiziellen Tomcat-Images und detaillierte Erklärung zur Image-Verwendung
  • Zusammenfassung gängiger Befehle in Dockerfile
  • So stellen Sie ein SpringBoot-Projekt mit Dockerfile bereit
  • So erstellen Sie mit Dockerfile ein Spiegelbild der Java-Laufzeitumgebung
  • Einführung in die Dockerfile-Anweisungen ADD und COPY
  • Detaillierte Erklärung zu Multi-Stage (Multi-Stage Build) in Dockerfile
  • Docker-Grundlagen: Detaillierte Erklärung der Dockerfile-Befehle
  • So stellen Sie den Node.js-Dienst mithilfe von Dockerfile bereit
  • Dockerfile-Anweisungen erklärt
  • Eine kurze Einführung in die Dockerfile-Anweisung VOLUME
  • Dockerfile – einfache Einführung

<<:  MySQL-Rekursionsproblem

>>:  js verwendet Cookies, um die Seitenvorgänge des Benutzers zu speichern

Artikel empfehlen

Was sind HTML-Inline-Elemente und Block-Level-Elemente und ihre Unterschiede

Ich erinnere mich an eine Frage, die der Intervie...

MySQL verwendet ein Limit, um die Beispielmethode für Paging zu implementieren

1. Grundlegende Implementierung des Limits Im All...

So erstellen Sie eine lnmp-Umgebung im Docker

Erstellen eines Projektverzeichnisses mkdir php E...

Detaillierte Untersuchung der MySQL-Mehrversions-Parallelitätskontrolle MVCC

MVCC MVCC (Multi-Version Concurrency Control) ist...

Wie wird eine SQL-Anweisung in MySQL ausgeführt?

Inhaltsverzeichnis 1. Analyse der MySQL-Architekt...

JavaScript implementiert eine Eingabefeldkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur Verwendung von Profilen in MySQL

Was ist ein Profil? Wir können es verwenden, wenn...

MySQL-Integritätsbeschränkungen – Definition und Beispiel-Tutorial

Inhaltsverzeichnis Integritätsbeschränkungen Defi...