Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In DevOps Laatst bijgewerkt: 23 september 2023
Deel op:
Invicti beveiligingsscanner voor webtoepassingen - de enige oplossing die automatische verificatie van kwetsbaarheden levert met Proof-Based Scanning™.

Vraagt u zich af wat Docker Compose is?

Docker is de populairste containerisatie-tool in de DevOps-wereld. Maar wat is Docker Compose?

Docker Compose wordt gebruikt om applicaties te draaien die meerdere containers hebben met behulp van een YAML-bestand

Er kunnen verschillende gevallen zijn waarin de dockerapplicatie meerdere containers voor verschillende technologiestapels moet uitvoeren. Nu kan het bouwen, uitvoeren en verbinden van aparte dockerfiles voor elke container een moeilijke taak zijn; dit is waar docker-compose u uit de brand helpt

Met behulp van een enkel en eenvoudig docker-compose.yml-bestand kunt u alle containers bouwen, verbinden en starten door een enkele opdracht uit te voeren. Dit is erg handig voor bedrijfsapplicaties in productie, waar verschillende applicaties in containers draaien. Het bespaart veel tijd door gemakkelijk 100 applicaties in docker-containers te draaien

Docker Compose installeren

Docker moet al op uw systeem geïnstalleerd zijn voordat u compose installeert

Voer de onderstaande opdracht uit om docker-compose te installeren

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> wachtwoord voor geekflare:

% Totaal % Ontvangen % Xferd Gemiddelde Snelheid Tijd Tijd Huidig

Dload Upload Totaal Besteed Links Snelheid

100 617 0 617 0 0 1209 0 --:--:-- --:--:--:-- 1209

100 11.1M.1M 100 11.1M 0 0 348k 0 0

:

00:32

0

:00:32 --:--:-- 476k

Voer de onderstaande opdracht uit om de bestandsrechten in te stellen

geekflare@geekflare:/home/geekflare$ sudo chmod x /usr/local/bin/docker-compose

Controleer of het correct is geïnstalleerd, het zou de docker-compose versie moeten teruggeven

geekflare@geekflare:/home/geekflare$ docker-compose --version

docker-compose versie 1.23.1, build b02f1306

Hieronder vindt u de lijst met commando's die u kunt gebruiken met docker-compose

geekflare@geekflare:/home/geekflare$ docker-compose

Definieer en draai multi-container applicaties met Docker.

Gebruik:

docker-compose [-f <arg>...] [options] [COMMANDO] [ARGS...]

docker-compose -h|--help

Opties:

-f, --file FILE Specificeer een alternatief compose bestand

(standaard: docker-compose.yml)

-p, --project-name NAME Specificeer een alternatieve projectnaam

(standaard: directorynaam)

--verbose Meer uitvoer tonen

--log-level LEVEL Logniveau instellen (DEBUG, INFO, WARNING, ERROR, CRITICAL)

--no-ansi Geen ANSI-besturingstekens afdrukken

-v, --version Versie afdrukken en afsluiten

-H, --host HOST Daemon socket om verbinding mee te maken


--tls TLS gebruiken; geïmpliceerd door -tlsverify

--tlscacert CA_PATH Vertrouw alleen op certificaten die door deze CA zijn ondertekend

--tlscert CLIENT_CERT_PATH Pad naar TLS-certificaatbestand

--tlskey TLS_KEY_PATH Pad naar TLS-sleutelbestand

--tlsverify Gebruik TLS en verifieer de remote

--skip-hostname-check Controleer de hostnaam van de daemon niet aan de hand van de

naam die in het clientcertificaat staat

--project-directory PATH Geef een alternatieve werkdirectory op

(standaard: het pad van het Compose-bestand)

--compatibility Indien ingesteld, zal Compose proberen om

sleutels in v3-bestanden te converteren naar hun niet-Swarm equivalent

Opdrachten:

build Bouw of herbouw services

bundle Genereer een Docker bundle van het Compose bestand

config Valideer en bekijk het Compose bestand

create Creëer services

down Stop en verwijder containers, netwerken, images, en volumes

events Ontvang realtime-events van containers

exec Voer een commando uit in een draaiende container

help Krijg hulp bij een commando

images Geef images weer

kill Kill containers

logs Bekijk output van containers

pause Pauzeer services

port Print de publieke poort voor een poortbinding

ps Geef containers weer

pull pull service images

push Push service images

restart Start services

rm Verwijder gestopte containers

run Voer een one-uit commando

scale Stel het aantal containers in voor een service

start Start services

stop Stop services

top Toon de lopende processen

unpause Unpause services

up Maak en start containers

version Toon de Docker-Compose versie informatie

Docker Compose-bestand

Hier is een voorbeeld van een docker-compose bestand dat alle magie doet

versie: '3'

services:

web:

build: .

poorten:

- "5000:5000"

redis:

image: "redis:alpine"

De eerste regel in dit bestand specificeert de versie die wordt gebruikt. Dit nummer hangt af van de Docker engine die op uw systeem is geïnstalleerd. Ik heb Docker 18.09.6 geïnstalleerd, wat bij versie 3 van docker-compose hoort. Bekijk hier meer details over versies - https://docs.docker.com/compose/compose-file/compose-versioning/

Dit docker-bestand draait twee services/applicaties, web en Redis. De webservice is gebouwd via een dockerfile en draait op de standaard flask webserverpoort - 5000. De Redis-service draait door het Redis-image uit het docker hub-register te halen

Om het docker-compose.yml bestand uit te voeren, moet u een heel eenvoudig commando uitvoeren: docker-compose omhoog

Docker Compose-workflow

Hieronder vindt u de drie stappen om docker-compose te gebruiken

  1. Maak dockerfile van elke service
  2. Maak een docker-compose.yml bestand om alle dockerfiles te verbinden
  3. Voer het docker-compose up commando uit om het systeem te starten

Laat me een voorbeeld nemen van het voorbeeld docker-compose bestand dat we eerder zagen en u laten zien hoe de projectstructuur zal worden aangemaakt

my-app

|-Web



|---------Dockerfile


|-----redis


|docker-compose
.yml

my-app is mijn hoofdprojectmap. Deze map bevat de web- en Redis-servicemappen en het docker-compose YAML-bestand. Dockerfile van webservice is aanwezig in een webdirectory. Aangezien de Redis-service rechtstreeks van de docker hub wordt gehaald, is er geen dockerfile nodig in de Redis-directory. Zo ziet de docker-compose workflow eruit

Een MEAN Stack-toepassing in containers onderbrengen met Docker Compose

Nu hebt u de fundamentele concepten begrepen. Laat me u een demo tonen over hoe u een MEAN stack applicatie kunt containeriseren met docker-compose

MEAN staat voor MongoDBExpress, Angular en Node.js. Toepassingen die deze services samen gebruiken, worden ook wel een MEAN/Full-stack toepassing genoemd

Voor deze demo draaien we drie docker-containers

  • Container 1 - Hoekig
  • Container 2 - NodeJS en ExpressJS
  • Container 3 - MongoDB

Download de volledige applicatie hier: http://bit.ly/2St7r3A (niet getest voor productie)

Zo ziet mijn docker-compose.yml bestand eruit om deze drie containers te draaien

versie: '3'

services:

angular:

build: angular-client

poorten:

- "4200:4200"

volumes:

- ./angular-client/:/var/www/app

express:

build: express-server

poorten:

- "3000:3000"

volumes:

- ./express-server/:/var/www/app

links:

database

database:

image: mongo

poorten:

"27017:27017"
  • De eerste regel specificeert de docker-compose versie die wordt gebruikt
  • We draaien drie diensten - angular, express en database
  • De Angular-service wordt gebouwd met behulp van een dockerfile. Deze draait op poort 4200, en het applicatievolume is /var/www/app
  • De express-service wordt gebouwd met behulp van een dockerfile. De express server draait op poort 3000 en het volume is /var/www/app
  • Database service zal MongoDB image van dockerhub halen en starten op post 27017

Pak het project uit in de homedirectory en ga naar de angular-client directory

geekflare@geekflare:~$ cd mean

geekflare@geekflare:~/mean$ cd angular-client 

Voer de onderstaande opdracht uit als u node package manager (npm) niet op uw systeem geïnstalleerd hebt (negeer als het geïnstalleerd is)

geekflare@geekflare:~/mean/angular-client$ sudo apt install npm

<x>[sudo]</x> wachtwoord voor geekflare:

Pakketlijsten lezen... Gedaan

Bouwen van afhankelijkheidsstructuur

Lezen van statusinformatie... Gedaan

De volgende extra pakketten worden geïnstalleerd:

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

Voorgestelde pakketten:

apache2 | lighttpd | httpd node-aws-sign node-oauth-sign node-http-signature debhelper

De volgende NIEUWE pakketten worden geïnstalleerd:

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 geüpgraded, 212 nieuw geïnstalleerd, 0 te verwijderen en 233 niet geüpgraded.

U moet 10,5 MB archieven ophalen.

Na deze bewerking wordt 53,6 MB extra schijfruimte gebruikt.

Wilt u doorgaan? [J/N] J

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 kB]

Get:6 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 libjs-jquery all 3.2.1-1 [152 kB]

Get:7 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libjs-node-uuid all 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]

10.5 MB opgehaald in 1min 34s (112 kB/s)

Sjablonen uit pakketten halen: 100%

Eerder niet-geselecteerd pakket gyp selecteren.

(Database lezen ... 180130 bestanden en mappen die momenteel zijn geïnstalleerd.)

Uitpakken voorbereiden .../000-gyp_0.1 20180428git4d467626-1_all.deb ...

Uitpakken van gyp (0.1 20180428git4d467626-1) ...

Het selecteren van het eerder niet-geselecteerde pakket javascript-common.

Klaarmaken om uit te pakken .../001-javascript-common_11_all.deb ...

Uitpakken van javascript-common (11) ...

Eerder niet-geselecteerd pakket libhttp-parser2.8:amd64 selecteren.

Uitpakken voorbereiden .../002-libhttp-parser2.8_2.8.1-1_amd64.deb ...


Het
opzetten van node-fstream-ignore (0.0.6-2) ...

Het opzetten van node-gyp (3.6.2-2) ...

Het opzetten van node-yargs (10.0.3-2) ...

Het opzetten van npm (5.8.0 ds-2) ...

Verwerken van triggers voor libc-bin (2.28-0ubuntu1) ..

Ga naar de angular-client directory en voer npm install uit

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

Downloadt binair van https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node

Download compleet ] - :

Binary opgeslagen in /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

binary cachen naar /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

Binair

gevonden op /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

Binary testen

Binair

is fine

toegevoegd 1457 packages van 1250 contributors in 80.009s

Ga nu naar de express directory en voer npm install uit

geekflare@geekflare:~/mean/angular-client$ cd ..

geekflare@geekflare:~/mean$ cd express-server/

geekflare@geekflare:~/mean/express-server$ npm install

Nu alles is ingesteld, is het tijd om het docker-compose.yml bestand uit te voeren dat alle docker containers zal starten en de MEAN stack applicatie zal draaien.

geekflare@geekflare:~/mean/express-server$ cd ..

geekflare@geekflare:~/mean$ docker-compose up

Netwerk "mean_default" aanmaken met het standaard stuurprogramma

Angular bouwen

Stap 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: Nieuwere image gedownload voor node:8

--->
 8e45c884a32e

Stap 2/8 : RUN mkdir -p /var/www/app

--->
 Loopt in c70a0cab7994

Verwijderen tussencontainer c70a0cab7994

--->
 001c5e840b24

Stap 3/8 : WORKDIR /var/www/app

--->
 Loopt in 622ebdc41b2f

Tussencontainer verwijderen 622ebdc41b2f

--->
 baa2e2347259

Stap 4/8 : COPY package.json /var/www/app

--->
 5b97543befab

Stap 5/8 : RUN npm install

--->
 Loopt 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

Het downloaden van binary van https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node

Download compleet

Binary opgeslagen in /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Caching binary naar /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"

Het project heeft uw hulp nodig! Overweeg alstublieft om core-js te steunen op Open Collective of 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 gevonden op /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Binary testen

Binary is in orde

1606 packages toegevoegd van 1329 contributors en 15092 packages gecontroleerd in 112.427s

Tussencontainer verwijderen 73e3d8b7a701

--->
 55790d2fae93

Stap 6/8 : KOPIEREN . /var/www/app

--->
 61537aa487f4

Stap 7/8 : EXPOSE 4200

--->
 Draaiend in 632eedc35a45

Tussencontainer verwijderen 632eedc35a45

--->
 51e75b0e2ebe

Stap 8/8 : CMD ["npm", "start"]

--->
 Loopt in 36bbb12a0d38

Verwijderen van tussencontainer 36bbb12a0d38

--->
 9f8d61db600c

Met succes gebouwd 9f8d61db600c

Met succes getagd mean_angular:latest

Pulling database (mongo:)...

latest: Pulling van library/mongo

35b42117c431: Pull compleet

ad9c569a8d98: Pull compleet

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

Building express

Stap 1/9 : FROM node:8

--->
 8e45c884a32e

Stap 2/9 : RUN mkdir -p /var/www/app

--->
 Cache gebruiken

--->
 001c5e840b24

Stap 3/9 : WORKDIR /var/www/app

--->
 Cache gebruiken

--->
 baa2e2347259

Stap 4/9 : COPY package.json /var/www/app

--->
 0232ad53c679

Stap 5/9 : RUN npm install

--->
 Uitgevoerd in c309bf6f218e

128 pakketten toegevoegd van 151 bijdragers en 233 pakketten gecontroleerd in 9.055s

Tussencontainer verwijderen c309bf6f218e

--->
 49e652884562

Stap 6/9 : RUN npm install -g nodemon

--->
 Loopt 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

Houdt u van nodemon? U kunt het project nu steunen via het open collectief:

> https://opencollective.com/nodemon/donate

 nodemon@1.19.1

toegevoegd 221 pakketten van 128 bijdragers in 18.856s

verwijderen tussencontainer 0ed5d7f3642b

--->
 32c55606f35e

Stap 7/9 : KOPIEREN . /var/www/app

--->
 a618b38a2812

Stap 8/9 : EXPOSE 3000

--->
 Draaiend in bea389ab3ef1

Tussencontainer verwijderen bea389ab3ef1

--->
 684bbfb31371

Stap 9/9 : CMD ["npm", "start"]

--->
 Loopt in 9aa1b72e4a4e

Verwijderen tussencontainer 9aa1b72e4a4e

--->
 35dcb3df9806

Succesvol gebouwd 35dcb3df9806

Succesvol getagd mean_express:latest

Maken van mean_angular_1_de44b3f5b988 .... gedaan

mean_database_1_708f8f9c3c33 aanmaken ... gedaan

mean_express_1_b57a483a72ee aanmaken ... done

Koppelen aan 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] Automatisch uitschakelen van TLS 1.0, om TLS 1.0 te forceren specificeer --sslDisabledProtocols '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> MongoDB starting : 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 versie 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 versie: 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 versie: OpenSSL 1.0.2g 1 mrt 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: geen

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> bouwomgeving:

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> om op elk moment opnieuw te starten, voert u `rs` in

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 verbinding nu open)

database_1_ccc5c677e00b | 2019-07-20T22:33:33.560 0000 I NETWORK [ conn1] client metadata ontvangen van 172.19.0.4:38958 conn1: { driver: {naam: "nodejs", versie: "3.0.1" }, os: {type: "Linux", naam: "linux", architectuur: "x64", versie: "4.18.0-25-generic" }, platform: "Node.js v8.16.0, LE, mongodb-core: 3.0.1" }

express_1_574f07b045fc | mongodb: connected

angular_1_f257e2233ef1 | ** NG Live Development Server luistert op 0.0.0.0:4200, open uw browser op http://localhost:4200/ **

angular_1_f257e2233ef1 | Datum: 2019-07-21T11:21:03.868Z - Hash: 639d9a968476ed482b5c - Tijd: 336ms

angular_1_f257e2233ef1 | 4 ongewijzigde chunks

angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB <x>[initial]</x> <x>[rendered]</x>

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | webpack: Met succes gecompileerd.

angular_1_f257e2233ef1 | webpack: Compiling...

angular_1_f257e2233ef1 | Datum: 2019-07-21T11:25:15.661Z - Hash: e5a2b1c1afe0deb396c3 - Tijd: 251ms

angular_1_f257e2233ef1 | 4 ongewijzigde chunks

angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB <x>[initial]</x> <x>[rendered]</x>

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | webpack: Met succes gecompileerd

Ga naar uw browser en controleer https://localhost:4200, uw toepassing wordt nu uitgevoerd.

angular - docker compose

Ga naar https://localhost:3000 om te controleren of er een express server draait

express - docker compose

U kunt ook het commando docker images uitvoeren om te zien welke images aanwezig zijn in docker

geekflare@geekflare:~/mean$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mean_express latest 35dcb3df9806 14 hours ago 923MB

mean_angular latest 9f8d61db600c 14 hours ago 1.29GB

node 8 8e45c884a32e 9 days ago 895MB

mongo

latest 785c65f61380 2 weeks ago 412MB

Voer de onderstaande opdracht uit om de containers te zien die in docker draaien

geekflare@geekflare:~/mean$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

681c9c34bee2 mean_express "docker-entrypoint.s..." 14 uur geleden Up 14 uur 0.0.0.0:3000->3000/tcp mean_express_1_574f07b045fc

f74b56905249 mongo "docker-entrypoint.s..." 14 uur geleden Omhoog 14 uur 0.0.0.0:27017->27017/tcp mean_database_1_ccc5c677e00b

260ef1e52dab mean_angular "docker-entrypoint.s..." 14 uur geleden Omhoog 14 uur

0

.0.0.0:4200->4200/tcp mean_angular_1_f257e2233ef1

Dus nu zijn alle drie de docker-containers up and running

Docker-compose draaide alle containers met gemak. Dit was een eenvoudig voorbeeld voor het draaien van drie containers; u kunt zich voorstellen hoe handig het zal zijn als de applicaties op 100 containers moeten worden gestart. Probeer het uit om te zien hoe het werkt.

  • Avi
    Auteur
    Avi is een enthousiast techneut met expertise in trending technologieën zoals DevOps, Cloud Computing, Big Data en nog veel meer. Hij heeft een passie voor het leren van geavanceerde technologieën en het delen van zijn kennis met anderen via... meer lezen
Met dank aan onze sponsors
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • Invicti maakt gebruik van Proof-Based Scanning™ om de geïdentificeerde kwetsbaarheden automatisch te verifiëren en binnen enkele uren bruikbare resultaten te genereren.
    Probeer Invicti
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer