Vous vous demandez ce qu’est Docker Compose ?
Docker est l’outil de conteneurisation le plus populaire dans le monde DevOps. Mais qu’est-ce que Docker Compose ?
Docker Compose est utilisé pour exécuter des applications qui ont plusieurs conteneurs à l’aide d’un fichier YAML.
Il peut y avoir plusieurs cas où l’application Docker doit exécuter plusieurs conteneurs pour différentes piles technologiques. Construire, exécuter, connecter des dockerfiles séparés pour chaque conteneur peut être une tâche difficile ; c’est là que docker-compose vous aide.
En utilisant un seul fichier docker-compose.yml, vous pouvez construire, connecter et lancer tous les conteneurs en exécutant une seule commande. C’est très utile pour les applications d’entreprise en production, où plusieurs applications tournent dans des conteneurs. Cela permet de gagner beaucoup de temps en exécutant facilement des centaines d’applications dans des conteneurs Docker.
Installation de Docker Compose
Docker doit déjà être installé sur votre système avant d’installer compose.
Exécutez la commande ci-dessous pour installer docker-compose.
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
[sudo] mot de passe pour geekflare :
% Total % Reçu % Xferd Vitesse moyenne Temps Temps Temps Courant
Dload Upload Total Spented 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
Exécutez la commande ci-dessous pour définir les permissions des fichiers.
geekflare@geekflare:/home/geekflare$ sudo chmod x /usr/local/bin/docker-compose
Vérifiez qu’il a été installé correctement, il devrait retourner la version de docker-compose.
geekflare@geekflare:/home/geekflare$ docker-compose --version
docker-compose version 1.23.1, build b02f1306
Vous trouverez ci-dessous la liste des commandes que vous pouvez utiliser avec docker-compose.
geekflare@geekflare:/home/geekflare$ docker-compose
Définissez et exécutez des applications multi-conteneurs avec Docker.
Utilisation :
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
Options :
-f, --file FICHIER Spécifier un fichier de composition alternatif
(par défaut : docker-compose.yml)
-p, --project-name NAME Spécifie un nom de projet alternatif
(par défaut : nom du répertoire)
--verbose Affiche plus de résultats
--log-level LEVEL Définir le niveau de journalisation (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi Ne pas imprimer les caractères de contrôle ANSI
-v, --version Impression de la version et sortie
-H, --host HOST Socket du démon auquel se connecter
--tls Utiliser TLS ; impliqué par -tlsverify
--tlscacert CA_PATH Faire confiance aux certificats signés uniquement par cette autorité de certification
--tlscert CLIENT_CERT_PATH Chemin d'accès au fichier de certificats TLS
--tlskey TLS_KEY_PATH Chemin d'accès au fichier de clé TLS
--tlsverify Utilise TLS et vérifie l'identité de l'utilisateur distant
--skip-hostname-check Ne vérifie pas le nom d'hôte du démon par rapport à la liste des noms d'hôtes
nom spécifié dans le certificat du client
--project-directory PATH Spécifie un autre répertoire de travail
(par défaut : le chemin du fichier Compose)
--compatibility Si cette option est activée, Compose tentera de convertir les fichiers deploy
dans les fichiers v3 en leur équivalent non-Swarm
Commandes :
build Construire ou reconstruire des services
bundle Générer un bundle Docker à partir du fichier Compose
config Validez et visualisez le fichier Compose
create Créer des services
down Arrêter et supprimer des conteneurs, des réseaux, des images et des volumes
événements Recevoir des événements en temps réel des conteneurs
exec Exécuter une commande dans un conteneur en cours d'exécution
help Obtenir de l'aide sur une commande
images Liste des images
kill Tuer les conteneurs
logs Afficher les données de sortie des conteneurs
pause Mettre les services en pause
port Imprimer le port public pour une liaison de port
ps Liste des conteneurs
pull Tirer les images de service
push Pousser les images du service
restart Redémarrer les services
rm Supprimer les conteneurs arrêtés
run Exécuter une commande ponctuelle
scale Définir le nombre de conteneurs pour un service
start Démarrer des services
stop Arrêter les services
top Afficher les processus en cours
unpause Interrompre les services
up Créer et démarrer des conteneurs
version Affiche les informations sur la version de Docker-Compose
Fichier Docker Compose
Voici un exemple de fichier docker-compose qui fait toute la magie.
version : '3'
services :
web :
build : .
ports :
- "5000:5000"
redis :
image : "redis:alpine"
La première ligne de ce fichier indique la version utilisée. Ce numéro dépend du moteur Docker installé sur votre système. J’ai installé Docker 18.09.6 qui appartient à la version 3 de docker-compose. Vous trouverez plus de détails sur les versions ici – https://docs.docker.com/compose/compose-file/compose-versioning/
Ce fichier Docker exécute deux services/applications, web et Redis. Le service web est construit à travers un dockerfile et s’exécute sur le port par défaut de flask webserver – 5000. Le service Redis s’exécute en tirant l’image Redis du registre docker hub.
Pour exécuter le fichier docker-compose.yml, vous devez lancer une commande très simple : docker-compose up
Flux de travail de Docker Compose
Vous trouverez ci-dessous les trois étapes pour utiliser docker-compose.
- Créez un dockerfile pour chaque service
- Créez un fichier docker-compose.yml pour connecter tous les fichiers docker
- Exécutez la commande docker-compose up pour démarrer le système
Prenons l’exemple du fichier docker-compose que nous avons vu plus tôt et montrons comment la structure du projet sera créée.
mon-app
|-----web
|---------Dockerfile
-----redis
|docker-compose.yml
my-app est le répertoire principal de mon projet. Ce répertoire contient les répertoires des services Web et Redis ainsi que le fichier YAML de docker-compose. Le fichier Docker du service Web est présent dans le répertoire web. Comme le service Redis est tiré directement du hub docker, aucun dockerfile n’est nécessaire dans le répertoire Redis. Voici à quoi ressemble le flux de travail de docker-compose.
Conteneurisation d’une application MEAN Stack à l’aide de Docker Compose
Maintenant que vous avez compris les concepts fondamentaux. Laissez-moi vous montrer une démo sur la façon de conteneuriser une application de la pile MEAN à l’aide de Docker-compose.
MEAN signifie MongoDB, Express, Angular et Node.js. Les applications qui utilisent ces services ensemble sont également appelées applications MEAN/Full-stack.
Pour cette démo, nous allons exécuter trois conteneurs docker :
- Conteneur 1 – Angular
- Conteneur 2 – NodeJS et ExpressJS
- Conteneur 3 – MongoDB
Téléchargez l’application complète ici : http://bit.ly/2St7r3A (non testé pour la production)
Voici à quoi ressemblera mon fichier docker-compose.yml pour exécuter ces trois conteneurs :
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
liens :
- base de données
base de données :
image : mongo
ports :
- "27017:27017"
- La première ligne spécifie la version de docker-compose utilisée
- Nous exécutons trois services – angular, express et database
- Le service Angular sera construit en utilisant un dockerfile. Il fonctionnera sur le port 4200, et le volume de l’application est /var/www/app
- Le service Express sera construit à l’aide d’un fichier docker. Le serveur express fonctionnera sur le port 3000, et le volume est /var/www/app
- Le service de base de données tirera l’image MongoDB de dockerhub et la démarrera au poste 27017
Extrayez le projet dans le répertoire personnel et allez dans le répertoire angular-client.
geekflare@geekflare:~$ cd mean
geekflare@geekflare:~/mean$ cd angular-client
Exécutez la commande ci-dessous si le gestionnaire de paquets node (npm) n’est pas installé sur votre système (ignorez s’il l’est).
geekflare@geekflare:~/mean/angular-client$ sudo apt install npm
[sudo] mot de passe pour geekflare :
Lecture des listes de paquets... Terminé
Construction de l'arbre des dépendances
Lecture des informations d'état... Terminé
Les paquets supplémentaires suivants seront installés :
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
Paquets suggérés :
apache2 | lighttpd | httpd node-aws-sign node-oauth-sign node-http-signature debhelper
Les NOUVEAUX paquets suivants seront installés :
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 mis à jour, 212 nouvellement installés, 0 à supprimer et 233 non mis à jour.
Besoin de récupérer 10,5 Mo d'archives.
Après cette opération, 53,6 Mo d'espace disque supplémentaire seront utilisés.
Voulez-vous continuer ? [O/n] O
Get:1 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 gyp all 0.1 20180428git4d467626-1 [237 kB]
Obtenir: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 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]
Récupéré 10.5 MB en 1min 34s (112 kB/s)
Extraction des modèles à partir des paquets : 100%
Sélection d'un paquet non sélectionné précédemment : gyp.
(Lecture de la base de données ... 180130 fichiers et répertoires actuellement installés)
Préparation du déballage de .../000-gyp_0.1 20180428git4d467626-1_all.deb ...
Décompression de gyp (0.1 20180428git4d467626-1) ...
Sélection du paquet javascript-common précédemment non sélectionné.
Préparation du déballage de .../001-javascript-common_11_all.deb ...
Décompression de javascript-common (11) ...
Sélection du paquet non sélectionné précédemment libhttp-parser2.8:amd64.
Préparation du déballage de .../002-libhttp-parser2.8_2.8.1-1_amd64.deb ...
Mise en place de node-fstream-ignore (0.0.6-2) ...
Installation de node-gyp (3.6.2-2) ...
Installation de node-yargs (10.0.3-2) ...
Installation de npm (5.8.0 ds-2) ...
Traitement des déclencheurs pour libc-bin (2.28-0ubuntu1) ...
Dans le répertoire angular-client, lancez npm install.
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
Téléchargement du binaire depuis https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node
Téléchargement terminé ] - :
Binaire sauvegardé dans /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node
Mise en cache du binaire dans /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
Binaire trouvé dans /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node
Test du binaire
Le binaire est correct
a ajouté 1457 paquets de 1250 contributeurs en 80.009s
Allez maintenant dans le répertoire express et lancez npm install.
geekflare@geekflare:~/mean/angular-client$ cd ...
geekflare@geekflare:~/mean$ cd express-server/
geekflare@geekflare:~/mean/express-server$ npm install
Maintenant que tout est prêt, il est temps de lancer le fichier docker-compose.yml qui va lancer tous les conteneurs docker et exécuter l’application de la pile MEAN.
geekflare@geekflare:~/mean/express-server$ cd ...
geekflare@geekflare:~/mean$ docker-compose up
Création du réseau "mean_default" avec le pilote par défaut
Construction d'angular
Étape 1/8 : DU nœud:8
8 : Tiré de library/node
a4d8138d0f6b : Extraction terminée
dbdc36973392 : Extraction terminée
f59d6d019dd5 : retrait complet
aaef3e026258 : Pull terminé
6e454d3b6c28 : Pull terminé
c717a7c205aa : Pull complet
37add8e5ac11 : Suppression complète
0314ab675d31 : Pull terminé
012886364728 : Extraction terminée
Digest: sha256:310db2abcff097ef44af205d81833282a6d5471002a1b59d7b7459a74152c856
Statut : Téléchargement d'une nouvelle image pour node:8
--->
8e45c884a32e
Etape 2/8 : RUN mkdir -p /var/www/app
--->
Exécuté dans c70a0cab7994
Suppression du conteneur intermédiaire c70a0cab7994
--->
001c5e840b24
Étape 3/8 : WORKDIR /var/www/app
--->
Exécuté dans 622ebdc41b2f
Suppression du conteneur intermédiaire 622ebdc41b2f
--->
baa2e2347259
Étape 4/8 : COPY package.json /var/www/app
--->
5b97543befab
Étape 5/8 : Exécutez npm install
--->
Exécuté dans 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
Téléchargement du binaire depuis https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node
Téléchargement complet
Binaire sauvegardé dans /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node
Mise en cache du binaire dans /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"
Le projet a besoin de votre aide ! Veuillez envisager de soutenir core-js sur Open Collective ou 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
Binaire trouvé dans /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node
Test du binaire
Le binaire est correct
a ajouté 1606 paquets provenant de 1329 contributeurs et a audité 15092 paquets en 112.427s
Suppression du conteneur intermédiaire 73e3d8b7a701
--->
55790d2fae93
Étape 6/8 : COPY . /var/www/app
--->
61537aa487f4
Étape 7/8 : EXPOSER 4200
--->
En cours d'exécution dans 632eedc35a45
Suppression du conteneur intermédiaire 632eedc35a45
--->
51e75b0e2ebe
Étape 8/8 : CMD ["npm", "start"]
--->
Exécuté dans 36bbb12a0d38
Suppression du conteneur intermédiaire 36bbb12a0d38
--->
9f8d61db600c
Construit avec succès 9f8d61db600c
Marqué avec succès mean_angular:latest
Extraction de la base de données (mongo :)...
la plus récente : Extrait de library/mongo
35b42117c431 : Extraction terminée
ad9c569a8d98 : Pull terminé
293b44f45162 : Pull terminé
0c175077525d : Pull complet
4e73525b52ba : Pull terminé
a22695a3f5e9 : Pull terminé
c5175bcf2977 : Pull complet
3e320da07793 : Pull terminé
01c6db6b2b5a : Pull terminé
3bd6e9d03e78 : Pull complet
e03dcf51513f : Pull complet
c1956a9e136a : Pull complet
4c35cf22b1d5 : Pull terminé
Bâtiment express
Étape 1/9 : DU nœud:8
--->
8e45c884a32e
Étape 2/9 : RUN mkdir -p /var/www/app
--->
Utilisation du cache
--->
001c5e840b24
Étape 3/9 : WORKDIR /var/www/app
--->
Utilisation du cache
--->
baa2e2347259
Étape 4/9 : COPY package.json /var/www/app
--->
0232ad53c679
Étape 5/9 : Exécutez npm install
--->
Exécuté dans c309bf6f218e
ajout de 128 paquets provenant de 151 contributeurs et audit de 233 paquets en 9.055s
Suppression du conteneur intermédiaire c309bf6f218e
--->
49e652884562
Étape 6/9 : Exécutez npm install -g nodemon
--->
Exécuté dans 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
Vous aimez nodemon ? Vous pouvez maintenant soutenir le projet via le collectif ouvert :
> https://opencollective.com/nodemon/donate
nodemon@1.19.1
a ajouté 221 paquets provenant de 128 contributeurs en 18.856s
Suppression du conteneur intermédiaire 0ed5d7f3642b
--->
32c55606f35e
Étape 7/9 : COPY . /var/www/app
--->
a618b38a2812
Étape 8/9 : EXPOSER 3000
--->
Exécuté dans bea389ab3ef1
Suppression du conteneur intermédiaire bea389ab3ef1
--->
684bbfb31371
Étape 9/9 : CMD ["npm", "start"]
--->
Exécution dans 9aa1b72e4a4e
Suppression du conteneur intermédiaire 9aa1b72e4a4e
--->
35dcb3df9806
Construit avec succès 35dcb3df9806
Marqué avec succès mean_express:latest
Création de mean_angular_1_de44b3f5b988 ... done
Création de mean_database_1_708f8f9c3c33 ... done
Création de mean_express_1_b57a483a72ee ... done
Attachement à mean_angular_1_f257e2233ef1, mean_database_1_ccc5c677e00b, mean_express_1_574f07b045fc
angulaire_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] Désactivation automatique de TLS 1.0, pour forcer l'activation de TLS 1.0, spécifiez --sslDisabledProtocols 'none'
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] MongoDB démarre : pid=1 port=27017 dbpath=/data/db 64-bit host=f74b56905249
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROLE [initandlisten] db version v4.0.10
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] git version : c389e7f69f637f7a1ac3cc9fae843b635f20b766
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROLE [initandlisten] Version OpenSSL : OpenSSL 1.0.2g 1 Mar 2016
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] allocator : tcmalloc
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] modules : none
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROLE [initandlisten] build environment :
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROLE [initandlisten] distmod : ubuntu1604
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] distarch : x86_64
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROLE [initandlisten] target_arch : x86_64
database_1_ccc5c677e00b | 2019-07-20T22:33:25.937 0000 I CONTROL [initandlisten] 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 | > nodemon
express_1_574f07b045fc | [nodemon] 1.19.1
express_1_574f07b045fc | [nodemon] pour redémarrer à tout moment, entrez `rs`
express_1_574f07b045fc | [nodemon] watching : *.*
express_1_574f07b045fc | [nodemon] démarre `node ./bin/www`
database_1_ccc5c677e00b | 2019-07-20T22:33:33.543 0000 I RESEAU [listener] connexion acceptée depuis 172.19.0.4:38958 #1 (1 connexion ouverte)
database_1_ccc5c677e00b | 2019-07-20T22:33:33.560 0000 I RESEAU [conn1] received client metadata from 172.19.0.4:38958 conn1 : { driver : { name : "nodejs", version : "3.0.1" }, os : { type : "Linux", name : "linux", architecture : "x64", version : "4.18.0-25-generic" }, platform : "Node.js v8.16.0, LE, mongodb-core : 3.0.1" }
express_1_574f07b045fc | mongodb : connecté
angular_1_f257e2233ef1 | ** NG Live Development Server écoute sur 0.0.0.0:4200, ouvrez votre navigateur sur http://localhost:4200/ **
angular_1_f257e2233ef1 | Date : 2019-07-21T11:21:03.868Z - Hash : 639d9a968476ed482b5c - Time : 336ms
angular_1_f257e2233ef1 | 4 chunks inchangés
angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB [initial] [rendered]
angular_1_f257e2233ef1 |
angular_1_f257e2233ef1 | webpack : Compilé avec succès.
angular_1_f257e2233ef1 | webpack : Compilation...
angular_1_f257e2233ef1 | Date : 2019-07-21T11:25:15.661Z - Hash : e5a2b1c1afe0deb396c3 - Time : 251ms
angular_1_f257e2233ef1 | 4 chunks inchangés
angular_1_f257e2233ef1 | chunk {main} main.bundle.js (main) 19.8 kB [initial] [rendered]
angular_1_f257e2233ef1 |
angular_1_f257e2233ef1 | webpack : Compilé avec succès.
Allez dans votre navigateur et vérifiez https://localhost:4200,
votre application sera opérationnelle.
Allez sur https://localhost:3000
pour vérifier si un serveur express est en cours d’exécution.
Vous pouvez également lancer la commande docker images pour voir quelles images sont présentes dans docker.
geekflare@geekflare:~/mean$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mean_express latest 35dcb3df9806 il y a 14 heures 923MB
mean_angular dernier 9f8d61db600c il y a 14 heures 1.29GB
node 8 8e45c884a32e il y a 9 jours 895MB
mongo latest 785c65f61380 il y a 2 semaines 412MB
Exécutez la commande ci-dessous pour voir les conteneurs en cours d’exécution dans Docker.
geekflare@geekflare:~/mean$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
681c9c34bee2 mean_express "docker-entrypoint.s..." il y a 14 heures Up 14 heures 0.0.0.0:3000->3000/tcp mean_express_1_574f07b045fc
f74b56905249 mongo "docker-entrypoint.s..." Il y a 14 heures En cours 14 heures 0.0.0.0:27017->27017/tcp mean_database_1_ccc5c677e00b
260ef1e52dab mean_angular "docker-entrypoint.s..." Il y a 14 heures En haut 14 heures 0.0.0.0:4200->4200/tcp mean_angular_1_f257e2233ef1
Les trois conteneurs Docker sont maintenant opérationnels.
Docker-compose s’est occupé de faire fonctionner tous les conteneurs facilement. Il s’agissait d’un exemple simple pour faire fonctionner trois conteneurs ; vous pouvez imaginer à quel point cela sera utile si les applications doivent être lancées sur des centaines de conteneurs. Allez-y et essayez pour voir comment cela fonctionne.