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

Beste Tools zum Erstellen und Bearbeiten von Screenshots unter Linux

Als ich mein primäres Betriebssystem von Windows ...

Eine kurze Diskussion über Flex-Layout und Skalierungsberechnung

1. Einführung in Flex Layout Flex ist die Abkürzu...

Detaillierte Erläuterung des Beispiels einer MySQL-Einzeltabellenabfrage

1. Daten vorbereiten Die folgenden Operationen we...

Vue-Implementierungsbeispiel mit Google Recaptcha-Verifizierung

In unserem aktuellen Projekt müssen wir die Googl...

So setzen Sie das Root-Passwort in CentOS7 zurück

Beim Verschieben von Bausteinen treten verschiede...

Asynchroner Lebenszyklus von AsyncHooks in Node8

Async Hooks ist eine neue Funktion von Node8. Sie...

Detaillierte Schritte zur Installation von MySQL mit Cluster-RPM

MySQL-Datenbank installieren a) Laden Sie das MyS...

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

Vue-Kapselungskomponententool $attrs, $listeners-Verwendung

Inhaltsverzeichnis Vorwort $attrs Beispiel: $list...

Detaillierte Erklärung zum Kopieren und Sichern von Docker-Containerdaten

Hier nehmen wir den Jenkins-Container als Beispie...