1. Bilder 1. Was ist ein Spiegel?(1) Laut Baidu Encyclopedia: Spiegelung ist eine Form der Dateispeicherung und eine Art von Redundanz. Die Daten auf einer Festplatte haben eine identische Kopie auf einer anderen Festplatte, die als Spiegel bezeichnet wird. (2) Sie können aus vielen Dateien eine Spiegeldatei erstellen, diese mit Programmen wie GHOST auf eine Festplatte legen, sie dann mit Software wie GHOST öffnen und sie anschließend in viele Dateien wiederherstellen. RAID 1 und RAID 10 verwenden Spiegelung. (3) Zu den gängigen Bilddateiformaten gehören ISO, BIN, IMG, TAO, DAO, CIF und FCD. Wird Ihnen nach dem Anschauen schwindliger? Vereinfacht ausgedrückt ist ein Image eigentlich ein Paket einer App, das Programmcode, Basissystem, Abhängigkeitsbibliotheken und Tools enthält. 2. Komposition und Zweck der Bilder (1) Dockerdatei: ist das Rezept zum Erstellen der Bilddatei Wie ein Geheimrezept, das von Generation zu Generation weitergegeben wird: Yunnan Baiyao: Linzhi, Ginseng, Hirschgeweih, Panax Notoginseng usw. (2) Kratzer: Dies ist das grundlegendste Docker-Image, das einem Fundament entspricht -> leeres Image, nichts -> von Grund auf neu beginnen Andere Bilder als Basisbilder verwenden: Andere Bilder können darauf basierend erweitert werden – so, als ob man auf den Schultern von Riesen steht. Aber wir müssen Schritt für Schritt einen Spiegel bauen. (3) Ein vollständiges Betriebssystem erfordert:
bootfs --》Inhalte, die beim Starten des Containers erforderlich sind rootfs --》Betriebssystem im Container Docker speichern Docker-Export Prinzip: Wenn der Container gestartet wird, startet der Kernel bootfs und lädt das Basisimage direkt und lädt es dann Schicht für Schicht – von unten nach oben Beim Zugriff auf Dateien nach Ausführung des Containers erfolgt der Zugriff von oben nach unten, von der beschreibbaren Ebene aus, Ebene für Ebene. 3. Warum sollten Sie Ihr eigenes Bild erstellen?Um MySQL in Linux- und CentOS-Systemen herunterzuladen, mussten Sie früher den Befehl yum verwenden. Nachdem Sie die Docker-Technologie erlernt haben, können Sie jede benötigte Software erhalten, indem Sie sie einfach auf Docker ziehen. Docker ist wie eine riesige Ressourcenbibliothek. Es enthält nur Dinge, an die Sie nicht denken können. Einige Studenten sagten: „Es war die Technologie, die meine Vorstellungskraft von Docker eingeschränkt hat“, und sie vergossen Tränen des Bedauerns. Einige Studenten sagten: „Da Docker so praktisch ist und so viele Bilddateien hat, warum müssen wir sie dann selbst erstellen?“ Können wir nicht einfach alles nehmen, was wir brauchen? Unternehmen müssen jedoch häufig ihre eigenen Bilddateien erstellen, da sie sich über die Erstellung durch andere nicht sicher sind oder bestimmte Anforderungen nicht erfüllt werden können. Genauso wie wenn Sie Moutai kaufen gehen und der Händler sagt, es sei der zehnjährige Moutai. Würden Sie ihm glauben? Ist das der Moutai der letzten zehn Jahre? Warum gehen Sie nicht hin und lassen es identifizieren? Wenn du reich bist, tu einfach so, als hätte ich nichts gesagt, hahaha 2. Schritte der Spiegelherstellung (10-Schritte-Methode) Schritt 1: Dockerfile bearbeiten[root@sc-docker-server ~]# mkdir /mydocker/ [root@sc-docker-server ~]# cd /mydocker/ [root@sc-docker-server mydocker]# [root@sc-docker-server mydocker]# vim Dockerfile VON python:2.7-slim ARBEITSVERZEICHNIS /app HINZUFÜGEN ./app Führen Sie den Befehl pip install --trusted-host pypi.python.org -r requirements.txt aus. AUSSETZEN 80 ENV NAME Welt ENV AUTOR Cali CMD ["python","app.py"] Schritt 2: Datei requirements.txt bearbeiten[root@sc-docker-server mydocker]# vim Anforderungen.txt Flasche Redis Schritt 3: Bearbeiten Sie die Datei app.py, unsere Programmdatei[root@sc-docker-server mydocker]# vim 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) Schritt 4: Bilddatei generieren[root@sc-docker-server mydocker]#docker build -t sc_friendlyhello_1 . Docker-Build -t sc_friendlyhello_1. Senden des Build-Kontexts an den Docker-Daemon 4,608 kB Schritt 1/9: VON python:2.7-slim ---> eeb27ee6b893 Schritt 2/9: WORKDIR /app ---> Cache verwenden ---> 81aa71984f63 Schritt 3/9: ./app hinzufügen ---> Cache verwenden ---> a5c7c6ed471c Schritt 4/9: VOLUME ["/data_flask"] ---> Cache verwenden ---> d4db66a741db Schritt 5/9: Führen Sie den Befehl „pip install --trusted-host pypi.python.org -r requirements.txt“ aus. ---> Cache verwenden ---> bcdee009e5f7 Schritt 6/9: EXPOSE 80 ---> Cache verwenden ---> 475474ce55ff Schritt 7/9: ENV NAME World ---> Cache verwenden ---> 0f03ead6c99b Schritt 8/9: ENV AUTHOR cali ---> Cache verwenden ---> f844eb0f1a78 Schritt 9/9: CMD ["python","app.py"] ---> Cache verwenden ---> ab30484b56b8 Erfolgreich erstellt ab30484b56b8 Erfolgreich getaggt mit sc_friendlyhello_1:latest [root@sc-docker-server mydocker]# Schritt 5: Überprüfen Sie, ob das Image erfolgreich ist[root@sc-docker-server mydocker]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE sc_friendlyhello_1 latest ab30484b56b8 vor 32 Minuten 159 MB Schritt 6: Verwenden des Images zum Starten des Containersdocker run -d -p 5080:80 --name sc-hello-1 sc_friendlyhello_1 Schritt 7: Zugriff auf den Webdienst des ContainersVerwenden Sie den Curl- oder Chrome-Browser, um auf die Host-IP:5080 zuzugreifen Hallo Welt! Hostname: f4aeb5d5305a Besuche: Verbindung zu Redis nicht möglich, Zähler deaktiviert Da der Redis-Datenbankcontainer nicht gestartet ist, kann der Flask-Webdienst keine Verbindung zur Redis-Datenbank herstellen Schritt 8: Starten Sie den Redis-Containerdocker run -d -p 6379:6379 --name sc-redis-1 redis Schritt 9: Starten Sie erneut einen Container mit Ihrem eigenen Image und verknüpfen Sie ihn mit dem Redis-Containerdocker run -d --name sc-hello-2 -p 5081:80 --link sc-redis-1:redis sc_friendlyhello_1 Schritt 10: Zugriff auf den Webdienst des ContainersVerwenden Sie den Curl- oder Chrome-Browser, um auf die Host-IP:5081 zuzugreifen. Hallo Welt! Hostname: aad7da1892b5 Besuche: 15 3. Spiegelbild erstellen Betrieb
Arbeitsschritte:Hochgeladene Dateien installieren root@sc-docker-server ~]# yum install lrzsz -y Installieren Sie die hochgeladene Software. Letzte Überprüfung auf Ablauf der Metadaten: vor 0:25:32, ausgeführt am Mittwoch, 18. August 2021 um 09:52:02. Paket lrzsz-0.12.20-43.el8.x86_64 ist bereits installiert. Abhängigkeitsauflösung. Es ist keine Behandlung erforderlich. vollständig! [root@sc-docker-server ~] Schritt 1: Laden Sie den Quellcode der App herunter https://github.com/docker/getting-started Unter Windows herunterladen, dann unter Linux hochladen yum install git -y Unter Linux: git clone https://github.com/califeng/getting-started.git Schritt 2: Entpacken Sie das App-Quellcode-Archiv [root@sc-docker-server ~]# yum install zip unzip -y [root@sc-docker-1 ~]# entpacken Sie getting-started-master.zip Schritt 3: Gehen Sie in das App-Verzeichnis und erstellen Sie ein neues Dockerfile [root@sc-docker-1 erste-schritte-master]# cd app/ [root@sc-docker-1 app]# vim Dockerfile VON Knoten:12-Alpine ARBEITSVERZEICHNIS /app KOPIEREN . . Führen Sie den Befehl yarn install --production aus. CMD ["Knoten", "src/index.js"] Schritt 4: Machen Sie den Spiegel [root@sc-docker-1 app]# docker build -t Erste Schritte . -t getting-started ist der Name des angegebenen Images. Sie können Ihren eigenen Namen definieren [root@sc-docker-1 app]# docker images Sehen Sie sich das erstellte Image an REPOSITORY TAG IMAGE ID CREATED SIZE Erste Schritte neueste 5b903e857b8c vor 25 Sekunden 179 MB redis latest cc69ae189a1a vor 2 Tagen 105MB nginx 1.19.7 35c43ace9216 vor 7 Tagen 133 MB nginx latest 35c43ace9216 vor 7 Tagen 133MB mysql 5.7.33 5f47254ca581 vor 2 Wochen 449 MB nginx 1.19.6 f6d0b4767a6c vor 6 Wochen 133 MB Knoten 12-Alpine 0206ff8a5f9e vor 7 Wochen 88,9 MB richarvey/nginx-php-fpm latest 5c3ad1891297 vor 5 Monaten 506 MB hallo-welt neueste bf756fb1ae65 vor 13 Monaten 13.3kB jcdemo/flaskapp latest 4f7a2cc79052 vor 2 Jahren 88,7 MB [root@sc-docker-1 App]# Schritt 5: Container des eigenen Images starten [root@sc-docker-1 app]# docker run -dp 3000:3000 Erste Schritte 8f150a72e7d2d1650685b00a18d237469fa07c8cd56977773dd266b281a3b4ad [root@sc-docker-1 app]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 8f150a72e7d2 Erste Schritte "docker-entrypoint.s…" vor 5 Sekunden Up 3 Sekunden 0.0.0.0:3000->3000/tcp strange_benz deabb58e01b0 nginx "/docker-entrypoint.…" vor 26 Stunden Aktiv seit 2 Stunden 0.0.0.0:6655->80/tcp chenpeng [root@sc-docker-1 App]# Schritt 6: Öffnen Sie den Browser, um auf die Website im Container zuzugreifen Website im Container: http://192.168.0.161:3000/ Zusammenfassen1. Die Bilderstellung ist eine wesentliche Fähigkeit in der Docker-Technologie. Wenn Sie sagen, dass Sie Docker kennen, werden andere Sie definitiv fragen, ob Sie wissen, wie man Bilder erstellt? Wenn Sie sie fragen, warum sie dieses Ding machen, werden sie wissend lächeln und denken, dass die Fähigkeiten dieser Person sehr gering sein müssen, da sie nicht einmal das kann und trotzdem sagt, dass sie Docker kennt. Haha. 2. Später folgen detaillierte Schritte zur Spiegelherstellung. Die Zehn-Schritte-Methode zur Spiegelherstellung zeigt Ihnen, wie es geht. Nehmen Sie sich Zeit und gehen Sie Schritt für Schritt vor. Dies ist das Ende dieses Artikels über das Erstellen, Hochladen, Abrufen und Bereitstellen von Docker-Images. Weitere relevante Inhalte zum Erstellen, Hochladen, Abrufen und Bereitstellen von Docker-Images finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zeitleistenimplementierungsmethode basierend auf ccs3
>>: Spezifische Verwendung des Node.js-Paketmanagers npm
Inhaltsverzeichnis 1. Übergang von der Entwicklun...
Wirkung: Die Funktion GROUP_CONCAT kann einen Fel...
Projektszenario: Auf der Seitenanzeige befindet s...
Frage Als ich kürzlich ein praktisches Projekt mi...
Dieser Artikel wurde aus dem Blog „Usability Count...
1. Versuchen Sie, ein einspaltiges statt eines meh...
Definition und Verwendung von „deaktiviert“ Das d...
Was das Problem betrifft, dass der strikte Modus ...
1. MySQL-Selbstverbindung MySQL muss beim Abfrage...
BFC-Konzept: Der Blockformatierungskontext ist ei...
In diesem Artikel wird der spezifische Code der E...
Inhaltsverzeichnis 1. Betrieb von js Integer 2. S...
Der MySQL-Abfragecache ist standardmäßig aktivier...
Studiennotizen zu HTML-Entwurfsmustern Diese Woch...
In SQL wird GROUP BY verwendet, um Daten in den E...