Sie fragen sich, was Docker Compose ist?
Docker ist das beliebteste Containerisierungswerkzeug in der DevOps-Welt. Aber was ist Docker Compose?
Docker Compose wird verwendet, um Anwendungen mit mehreren Containern über eine YAML-Datei auszuführen
Es kann mehrere Fälle geben, in denen die Docker-Anwendung mehrere Container für verschiedene Technologie-Stacks ausführen muss. Das Erstellen, Ausführen und Verbinden separater Dockerdateien für jeden Container kann eine schwierige Aufgabe sein; hier hilft Ihnen docker-compose
Mit einer einzigen und unkomplizierten Datei docker-compose.yml können Sie alle Container mit einem einzigen Befehl erstellen, verbinden und starten. Dies ist sehr nützlich für Unternehmensanwendungen in der Produktion, bei denen mehrere Anwendungen in Containern laufen. Es vergeht viel Zeit, da Sie 100 Anwendungen in Docker-Containern ausführen können
Installation von Docker Compose
Docker sollte bereits auf Ihrem System installiert sein, bevor Sie die Komposition installieren
Führen Sie den folgenden Befehl aus, um docker-compose zu installieren
geekflare@geekflare:/home/geekflare$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
<x>[sudo]</x> password for geekflare:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 617 0 617 0 0 1209 0 --:--:--:--:--:--:-- 1209
100 11.1M 100 11.1M 0 0 348k 0 0
:
00:32
0
:00:32 --:--:-- 476k
Führen Sie den folgenden Befehl aus, um die Dateiberechtigungen zu setzen
geekflare@geekflare:/home/geekflare$ sudo chmod x /usr/local/bin/docker-compose
Überprüfen Sie, ob es korrekt installiert wurde. Es sollte die Version von docker-compose zurückgeben
geekflare@geekflare:/home/geekflare$ docker-compose --version
docker-compose Version 1.23.1, build b02f1306
Im Folgenden finden Sie eine Liste der Befehle, die Sie mit docker-compose verwenden können
geekflare@geekflare:/home/geekflare$ docker-compose
Definieren und führen Sie Multi-Container-Anwendungen mit Docker aus.
Verwendung:
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
Optionen:
-f, --file FILE Geben Sie eine alternative Compose-Datei an
(Standard: docker-compose.yml)
-p, --project-name NAME Geben Sie einen alternativen Projektnamen an
(Standard: verzeichnisname)
--verbose Zeigt mehr Ausgaben
--log-level LEVEL Legt den Log-Level fest (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi Keine ANSI-Steuerzeichen ausgeben
-v, --version Version ausgeben und beenden
-H, --host HOST Daemon-Socket, mit dem eine Verbindung hergestellt werden soll
--tls TLS verwenden; impliziert durch -tlsverify
--tlscacert CA_PATH Vertraue auf Zertifikate, die nur von dieser CA signiert sind
--tlscert CLIENT_CERT_PATH Pfad zur TLS-Zertifikatsdatei
--tlskey TLS_KEY_PATH Pfad zur TLS-Schlüsseldatei
--tlsverify TLS verwenden und die Gegenstelle verifizieren
--skip-hostname-check Den Hostnamen des Daemons nicht mit dem
im Client-Zertifikat angegebenen Namen vergleichen
--project-directory PATH Ein alternatives Arbeitsverzeichnis angeben
(Standard: pfad der Compose-Datei)
--compatibility Wenn diese Option gesetzt ist, versucht Compose, die bereitgestellten
Schlüssel in v3-Dateien in ihr Nicht-Swarm-Äquivalent zu konvertieren
Befehle:
build Dienste erstellen oder neu aufbauen
bundle Ein Docker-Bundle aus der Compose-Datei erzeugen
config Die Compose-Datei validieren und anzeigen
create Dienste erstellen
down Container, Netzwerke, Images... anhalten und entfernen und Volumes
events Echtzeit-Ereignisse von Containern empfangen
exec Einen Befehl in einem laufenden Container ausführen
help Hilfe zu einem Befehl erhalten
images Images auflisten
kill Container töten
logs Ausgaben von Containern ansehen
pause Dienste anhalten
port Den öffentlichen Port für eine Portbindung ausgeben
ps Container auflisten
pull Dienst-Images ziehen
push Dienst-Images pushen
restart Dienste neu starten
rm Gestoppte Container entfernen
run Einen one-aus
scale Anzahl der Container für einen Dienst festlegen
start Dienste starten
stop Dienste stoppen
top Laufende Prozesse anzeigen
unpause Dienste nicht anhalten
up Container erstellen und starten
version Informationen zur Docker-Compose Version anzeigen
Docker Compose Datei
Hier ein Beispiel für eine Docker-Compose-Datei, die den ganzen Zauber ausführt
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
Die erste Zeile in dieser Datei gibt die verwendete Version an. Diese Zahl hängt von der auf Ihrem System installierten Docker-Engine ab. Ich habe Docker 18.09.6 installiert, was zu Version 3 von docker-compose gehört. Weitere Details zu den Versionen finden Sie hier - https://docs.docker.com/compose/compose-file/compose-versioning/
In dieser Docker-Datei laufen zwei Dienste/Anwendungen, Web und Redis. Der Webdienst wird über eine Dockerdatei erstellt und läuft auf dem Standard-Port des Flask-Webservers - 5000. Der Redis-Dienst wird ausgeführt, indem das Redis-Image aus der Docker-Hub-Registry gezogen wird
Um die Datei docker-compose.yml auszuführen, müssen Sie einen sehr einfachen Befehl ausführen: docker-compose aufwärts
Docker Compose Arbeitsablauf
Nachfolgend finden Sie die drei Schritte zur Verwendung von docker-compose
- Erstellen Sie für jeden Dienst eine Dockerdatei
- Erstellen Sie eine Datei docker-compose.yml, um alle Dockerdateien zu verbinden
- Führen Sie den Befehl docker-compose up aus, um das System zu starten
Lassen Sie mich am Beispiel der Beispielsdatei docker-compose, die wir vorhin gesehen haben, zeigen, wie die Projektstruktur erstellt wird
my-app
|--web
|---------Dockerfile
|-----redis
|docker-compose
.yml
my-app ist mein Hauptprojektverzeichnis. Dieses Verzeichnis enthält die Verzeichnisse der Web- und Redis-Dienste und die YAML-Datei von docker-compose. Die Dockerdatei des Webdienstes befindet sich in einem Web-Verzeichnis. Da der Redis-Dienst direkt vom Docker-Hub bezogen wird, ist im Redis-Verzeichnis keine Dockerdatei erforderlich. So sieht der Arbeitsablauf von docker-compose aus
Containerisierung einer MEAN Stack-Anwendung mit Docker Compose
Nun, da Sie die grundlegenden Konzepte verstanden haben. Lassen Sie mich Ihnen anhand einer Demo zeigen, wie Sie eine MEAN-Stack-Anwendung mit docker-compose containerisieren
MEAN steht für MongoDB, Express, Angular und Node.js. Anwendungen, die diese Dienste zusammen verwenden, werden auch als MEAN/Full-Stack-Anwendung bezeichnet
Für diese Demo werden wir drei Docker-Container ausführen
- Container 1 - Angular
- Container 2 - NodeJS und ExpressJS
- Container 3 - MongoDB
Laden Sie die vollständige Anwendung hier herunter: http://bit.ly/2St7r3A (nicht für die Produktion getestet)
So sieht meine Datei docker-compose.yml aus, um diese drei Container auszuführen
version: '3'
services:
angular:
build: angular-client
ports:
- "4200:4200"
volumes:
- ./angular-client/:/var/www/app
express:
build: express-server
ports:
- "3000:3000"
volumes:
- ./express-server/:/var/www/app
links:
–
database
database:
image: mongo
ports:
- "27017:27017"
- Die erste Zeile gibt die verwendete Version von docker-compose an
- Wir führen drei Dienste aus - Angular, Express und Datenbank
- Der Angular-Dienst wird mit einer Dockerdatei erstellt. Er wird auf Port 4200 ausgeführt, und das Anwendungsvolumen ist /var/www/app
- Der Express-Dienst wird mit Hilfe einer Dockerdatei erstellt. Der Express-Server läuft auf Port 3000, und das Volume ist /var/www/app
- Der Datenbankdienst zieht das MongoDB-Image von dockerhub und startet es an Post 27017
Entpacken Sie das Projekt im Home-Verzeichnis und wechseln Sie in das Angular-Client-Verzeichnis
geekflare@geekflare:~$ cd mean
geekflare@geekflare:~/mean$ cd angular-client
Führen Sie den folgenden Befehl aus, wenn Sie den Node Package Manager (npm) nicht auf Ihrem System installiert haben (wenn er installiert ist, ignorieren Sie ihn)
geekflare@geekflare:~/mean/angular-client$ sudo apt install npm
<x>[sudo]</x> Passwort für geekflare:
Paketlisten lesen... Erledigt
Erstellen des Abhängigkeitsbaums
Lesen der Statusinformationen... Erledigt
Die folgenden zusätzlichen Pakete werden installiert:
gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray
libjs-jquery libjs-node-uuid libjs-underscore libssl1.0-dev libuv1 libuv1-dev node-abbrev node-ajv
node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy
node-are-we-there-yet node-async node-aws-sign2 node-balanced-match node-block-stream node-bluebird
node-boom node-brace-expansion node-builtin-modules node-camelcase node-caseless node-chalk node-cliui
node-clone node-co node-color-convert node-color-name node-combined-stream node-concat-map
node-config-chain node-console-control-strings node-cookie-jar node-copy-concurrently node-core-util-is
node-yallist node-yargs node-yargs-parser nodejs nodejs-dev nodejs-doc
Empfohlene Pakete:
apache2 | lighttpd | httpd node-aws-sign node-oauth-sign node-http-signature debhelper
Die folgenden NEUEN Pakete werden installiert:
gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray
libjs-jquery libjs-node-uuid libjs-underscore libssl1.0-dev libuv1 libuv1-dev node-abbrev node-ajv
node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy
node-are-we-there-yet node-async node-aws-sign2 node-balanced-match node-block-stream node-bluebird
0 aktualisiert, 212 neu installiert, 0 zu entfernen und 233 nicht aktualisiert.
Sie benötigen 10,5 MB an Archiven.
Nach diesem Vorgang werden 53,6 MB an zusätzlichem Speicherplatz benötigt.
Möchten Sie fortfahren? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 gyp all 0.1 20180428git4d467626-1 [237 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 javascript-common all 11 [6.066 B]
Get:3 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 libhttp-parser2.8 amd64 2.8.1-1 [20.8 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libjs-async all 0.8.0-3 [25.4 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libjs-is-typedarray all 1.0.0-2 [2.934 B]
Get:6 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 libjs-jquery alle 3.2.1-1 [152 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libjs-node-uuid alle 1.4.7-5 [11.5 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 libjs-underscore all 1.8.3~dfsg-1 [59.9 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu cosmic-updates/main amd64 libssl1.0-dev amd64 1.0.2n-1ubuntu6.2 [1,366 kB]
Holte 10.5 MB in 1min 34s (112 kB/s)
Extrahiert Vorlagen aus Paketen: 100%
Auswahl des zuvor nicht ausgewählten Pakets gyp.
(Lesen der Datenbank ... 180130 Dateien und Verzeichnisse, die derzeit installiert sind.)
Vorbereiten des Entpackens von .../000-gyp_0.1 20180428git4d467626-1_all.deb ...
Entpacken von gyp (0.1 20180428git4d467626-1) ...
Auswählen des zuvor nicht ausgewählten Pakets javascript-common.
Vorbereiten des Entpackens von .../001-javascript-common_11_all.deb ...
Entpacken von javascript-common (11) ...
Auswählen des bisher nicht ausgewählten Pakets libhttp-parser2.8:amd64.
Vorbereiten des Entpackens von .../002-libhttp-parser2.8_2.8.1-1_amd64.deb ...
Einrichten von node-fstream-ignore (0.0.6-2) ...
Einrichten von node-gyp (3.6.2-2) ...
Einrichten von node-yargs (10.0.3-2) ...
Einrichten von npm (5.8.0 ds-2) ...
Verarbeiten von Triggern für libc-bin (2.28-0ubuntu1) ..
Wechseln Sie in das Verzeichnis angular-client und führen Sie npm install aus
geekflare@geekflare:~/mean/angular-client$ npm install
> uws@0.14.5 install /home/geekflare/mean/angular-client/node_modules/uws
> node-gyp rebuild > build_log.txt 2>&1 || exit 0
> node-sass@4.7.2 install /home/geekflare/mean/angular-client/node_modules/node-sass
> node scripts/install.js
Download der Binärdatei von https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node
Download abgeschlossen ] - :
Binärdatei gespeichert in /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node
Caching der Binärdatei in /home/geekflare/.npm/node-sass/4.7.2/linux-x64-57_binding.node
> uglifyjs-webpack-plugin@0.4.6 postinstall /home/geekflare/mean/angular-client/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js
> node-sass@4.7.2 postinstall /home/geekflare/mean/angular-client/node_modules/node-sass
> node scripts/build.js
Binär
gefunden unter /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node
Testing binary
Binär
is fine
added 1457 packages from 1250 contributors in 80.009s
Wechseln Sie nun in das Verzeichnis express und führen Sie npm install aus
geekflare@geekflare:~/mean/angular-client$ cd ..
geekflare@geekflare:~/mean$ cd express-server/
geekflare@geekflare:~/mean/express-server$ npm install
Nun, da alles eingerichtet ist, ist es an der Zeit, die Datei docker-compose.yml auszuführen, die alle Docker-Container startet und die MEAN-Stack-Anwendung ausführen wird
geekflare@geekflare:~/mean/express-server$ cd ..
geekflare@geekflare:~/mean$ docker-compose up
Erstellen des Netzwerks "mean_default" mit dem Standardtreiber
Erstellen von angular
Schritt 1/8 : FROM node:8
8: Pulling from library/node
a4d8138d0f6b: Pull complete
dbdc36973392: Pull complete
f59d6d019dd5: Pull complete
aaef3e026258: Pull complete
6e454d3b6c28: Pull complete
c717a7c205aa: Pull complete
37add8e5ac11: Pull complete
0314ab675d31: Pull complete
012886364728: Pull complete
Digest: sha256:310db2abcff097ef44af205d81833282a6d5471002a1b59d7b7459a74152c856
Status: Heruntergeladenes neueres Image für node:8
--->
8e45c884a32e
Schritt 2/8 : RUN mkdir -p /var/www/app
--->
Läuft in c70a0cab7994
Entfernen des Zwischencontainers c70a0cab7994
--->
001c5e840b24
Schritt 3/8 : WORKDIR /var/www/app
--->
Ausführen in 622ebdc41b2f
Entfernen des Zwischencontainers 622ebdc41b2f
--->
baa2e2347259
Schritt 4/8 : COPY package.json /var/www/app
--->
5b97543befab
Schritt 5/8 : RUN npm install
--->
Läuft in 73e3d8b7a701
> uws@9.14.0 install /var/www/app/node_modules/uws
> node-gyp rebuild > build_log.txt 2>&1 || exit 0
> node-sass@4.12.0 install /var/www/app/node_modules/node-sass
> node scripts/install.js
Download der Binärdatei von https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node
Download abgeschlossen
Binärdatei gespeichert in /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node
Caching der Binärdatei in /root/.npm/node-sass/4.12.0/linux-x64-57_binding.node
> core-js@2.6.9 postinstall /var/www/app/node_modules/core-js
> node scripts/postinstall || echo "ignore"
Das Projekt braucht Ihre Hilfe! Bitte unterstützen Sie core-js auf Open Collective oder Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
> uglifyjs-webpack-plugin@0.4.6 postinstall /var/www/app/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js
> node-sass@4.12.0 postinstall /var/www/app/node_modules/node-sass
> node scripts/build.js
Binary gefunden unter /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node
Testing binary
Binary is fine
added 1606 packages from 1329 contributors and audited 15092 packages in 112.427s
Removing intermediate container 73e3d8b7a701
--->
55790d2fae93
Step 6/8 : COPY . /var/www/app
--->
61537aa487f4
Schritt 7/8 : EXPOSE 4200
--->
Ausführen in 632eedc35a45
Entfernen des Zwischencontainers 632eedc35a45
--->
51e75b0e2ebe
Schritt 8/8 : CMD ["npm", "start"]
--->
Läuft in 36bbb12a0d38
Entfernen des Zwischencontainers 36bbb12a0d38
--->
9f8d61db600c
Erfolgreich gebaut 9f8d61db600c
Erfolgreich getaggt mean_angular:latest
Pulling Datenbank (mongo:)...
latest: Abruf aus library/mongo
35b42117c431: Abruf abgeschlossen
ad9c569a8d98: Pull complete
293b44f45162: Pull complete
0c175077525d: Pull complete
4e73525b52ba: Pull complete
a22695a3f5e9: Pull complete
c5175bcf2977: Pull complete
3e320da07793: Pull complete
01c6db6b2b5a: Pull complete
3bd6e9d03e78: Pull complete
e03dcf51513f: Pull complete
c1956a9e136a: Pull complete
4c35cf22b1d5: Pull complete
Aufbau express
Schritt 1/9 : FROM node:8
--->
8e45c884a32e
Schritt 2/9 : RUN mkdir -p /var/www/app
--->
Cache verwenden
--->
001c5e840b24
Schritt 3/9 : WORKDIR /var/www/app
--->
Cache verwenden
--->
baa2e2347259
Schritt 4/9 : COPY package.json /var/www/app
--->
0232ad53c679
Schritt 5/9 : RUN npm install
--->
Läuft in c309bf6f218e
hat 128 Pakete von 151 Mitwirkenden hinzugefügt und 233 Pakete in 9.055s auditiert
Entfernen des Zwischencontainers c309bf6f218e
--->
49e652884562
Schritt 6/9 : RUN npm install -g nodemon
--->
Läuft in 0ed5d7f3642b
/usr/local/bin/nodemon -> /usr/local/lib/node_modules/nodemon/bin/nodemon.js
> nodemon@1.19.1 postinstall /usr/local/lib/node_modules/nodemon
> node bin/postinstall || exit 0
Sie lieben nodemon? Sie können das Projekt jetzt über das Open Collective unterstützen:
> https://opencollective.com/nodemon/donate
nodemon@1.19.1
added 221 packages from 128 contributors in 18.856s
Removing intermediate container 0ed5d7f3642b
--->
32c55606f35e
Step 7/9 : COPY . /var/www/app
--->
a618b38a2812
Schritt 8/9 : EXPOSE 3000
--->
Ausführen in bea389ab3ef1
Entfernen des Zwischencontainers bea389ab3ef1
--->
684bbfb31371
Schritt 9/9 : CMD ["npm", "start"]
--->
Läuft in 9aa1b72e4a4e
Entfernen des Zwischencontainers 9aa1b72e4a4e
--->
35dcb3df9806
Erfolgreich gebaut 35dcb3df9806
Erfolgreich getaggt mean_express:latest
Erstellen von mean_angular_1_de44b3f5b988 ... done
Erstellen von mean_database_1_708f8f9c3c33 ... done
Erstellen von mean_express_1_b57a483a72ee ... done
Anhängen an mean_angular_1_f257e2233ef1, mean_database_1_ccc5c677e00b, mean_express_1_574f07b045fc
angular_1_f257e2233ef1 |
angular_1_f257e2233ef1 | > my-app@0.0.0 start /var/www/app
angular_1_f257e2233ef1 | > ng serve -H 0.0.0.0
angular_1_f257e2233ef1 |
database_1_ccc5c677e00b | 2019-07-20T22:33:25.933 0000 I CONTROL [ main] Automatisches Deaktivieren von TLS 1.0, zum Erzwingen der Aktivierung von TLS 1.0 geben Sie --sslDisabledProtocols 'none' an
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> MongoDB startet : pid=1 port=27017 dbpath=/data/db 64-bit host=f74b56905249
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [ <x><x><x><x><x><x><x><x><x><x>initandlisten]</x></x></x></x></x></x></x></x></x></x> db version v4.0.10
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [ <x><x><x><x><x><x><x><x><x><x>initandlisten]</x></x></x></x></x></x></x></x></x></x> git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [ <x><x><x><x><x><x><x><x><x><x>initandlisten]</x></x></x></x></x></x></x></x></x></x> OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [ <x><x><x><x><x><x><x><x><x><x>initandlisten]</x></x></x></x></x></x></x></x></x></x> allocator: tcmalloc
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> modules: none
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> build environment:
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> distmod: ubuntu1604
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> distarch: x86_64
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> target_arch: x86_64
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL <x><x><x><x><x><x><x><x><x><x>[initandlisten]</x></x></x></x></x></x></x></x></x></x> options: { net: { bindIpAll: true } }
express_1_574f07b045fc |
express_1_574f07b045fc | > express-server@0.0.0 start /var/www/app
express_1_574f07b045fc | > nodemon ./bin/www
express_1_574f07b045fc |
express_1_574f07b045fc | <x><x><x>[nodemon]</x></x></x> 1.19.1
express_1_574f07b045fc | <x><x><x>[nodemon]</x></x></x> um jederzeit neu zu starten, geben Sie `rs`
express_1_574f07b045fc | <x><x><x>[nodemon]</x></x></x> watching: *.*
express_1_574f07b045fc | <x><x><x>[nodemon]</x></x></x> starting `node ./bin/www`
database_1_ccc5c677e00b | 2019-07-20T22:33:33.543 0000 I NETWORK [listener] connection accepted from 172.19.0.4:38958 #1 (1 Verbindung jetzt offen)
database_1_ccc5c677e00b | 2019-07-20T22:33:33.560 0000 I NETZWERK [ conn1] hat Client-Metadaten von 172.19.0.4:38958 erhalten conn1: { driver: { name: "nodejs", version: "3.0.1" }, os: { type: "Linux", Name: "linux", Architektur: "x64", Version: "4.18.0-25-generic" }, Plattform: "Node.js v8.16.0, LE, mongodb-core: 3.0.1" }
express_1_574f07b045fc | mongodb: verbunden
angular_1_f257e2233ef1 | ** NG Live Development Server hört auf 0.0.0.0:4200, öffnen Sie Ihren Browser auf http://localhost:4200/ **
angular_1_f257e2233ef1 | Datum: 2019-07-21T11:21:03.868Z - Hash: 639d9a968476ed482b5c - Zeit: 336ms
angular_1_f257e2233ef1 | 4 unveränderte Chunks
angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB <x>[initial]</x> <x>[gerendert]</x>
angular_1_f257e2233ef1 |
angular_1_f257e2233ef1 | webpack: Erfolgreich kompiliert.
angular_1_f257e2233ef1 | webpack: Kompilieren...
angular_1_f257e2233ef1 | Datum: 2019-07-21T11:25:15.661Z - Hash: e5a2b1c1afe0deb396c3 - Zeit: 251ms
angular_1_f257e2233ef1 | 4 unveränderte Chunks
angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB <x>[initial]</x> <x>[gerendert]</x>
angular_1_f257e2233ef1 |
angular_1_f257e2233ef1 | webpack: Erfolgreich kompiliert
Rufen Sie Ihren Browser auf und überprüfen Sie https://localhost:4200. Ihre Anwendung ist nun einsatzbereit
Rufen Sie https://localhost:3000 auf, um zu überprüfen, ob ein Express-Server läuft
Sie können auch den Befehl docker images ausführen, um zu sehen, welche Images in docker vorhanden sind
geekflare@geekflare:~/mean$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mean_express latest 35dcb3df9806 vor 14 Stunden 923MB
mean_angular latest 9f8d61db600c vor 14 Stunden 1.29GB
node 8 8e45c884a32e vor 9 Tagen 895MB
mongo
latest 785c65f61380 vor 2 Wochen 412MB
Führen Sie den folgenden Befehl aus, um die in Docker laufenden Container zu sehen
geekflare@geekflare:~/mean$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
681c9c34bee2 mean_express "docker-entrypoint.s..." 14 hours ago Up 14 hours 0.0.0.0:3000->3000/tcp mean_express_1_574f07b045fc
f74b56905249 mongo "docker-entrypoint.s..." vor 14 Stunden Up 14 Stunden 0.0.0.0:27017->27017/tcp mean_database_1_ccc5c677e00b
260ef1e52dab mean_angular "docker-entrypoint.s..." 14 Stunden her Up 14 Stunden
0
.0.0.0:4200->4200/tcp mean_angular_1_f257e2233ef1
Jetzt sind auch alle drei Docker-Container in Betrieb
Docker-compose hat die Ausführung aller Container problemlos übernommen. Dies war ein einfaches Beispiel für den Betrieb von drei Containern; Sie können sich vorstellen, wie nützlich es ist, wenn die Anwendungen auf 100 Containern gestartet werden müssen. Probieren Sie es einfach aus, um zu sehen, wie es funktioniert.
-
Avi ist ein Technik-Enthusiast mit Fachkenntnissen in Trendtechnologien wie DevOps, Cloud Computing, Big Data und vielen mehr. Seine Leidenschaft ist es, Spitzentechnologien zu lernen und sein Wissen mit anderen zu teilen, indem er... mehr lesen