¿Cómo instalar Docker Compose y configuración?

Preguntándose qué es Docker Compose?


Docker es la herramienta de contenedorización más popular en el mundo DevOps. Pero, ¿qué es Docker Compose??

Docker Compose se usa para ejecutar aplicaciones que tienen múltiples contenedores usando un archivo YAML.

Puede haber varios casos en los que la aplicación acoplable debe ejecutar varios contenedores para una pila de tecnología diferente. Ahora, construir, ejecutar y conectar dockerfiles separados para cada contenedor puede ser una tarea difícil; aquí es donde Docker-compose te ayuda.

Con un archivo simple y directo de docker-compose.yml, puede compilar, conectar e iniciar todos los contenedores ejecutando un solo comando. Esto es muy útil para aplicaciones empresariales en producción, donde varias aplicaciones se ejecutan dentro de contenedores. Ahorra mucho tiempo al ejecutar cientos de aplicaciones dentro de contenedores acoplables con facilidad.

Instalación de Docker Compose

Docker ya debería estar instalado en su sistema antes de instalar compose.

Ejecute el siguiente comando para instalar docker-compose.

[correo electrónico protegido]: / inicio / 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] contraseña para geekflare:

% Total% Recibido% Xferd Velocidad promedio Tiempo Tiempo Tiempo Actual

Descarga Carga Total gastado Velocidad izquierda

100617 0 617 0 0 1209 0 -: -: – -: -: – -: -: – 1209

100 11.1M 100 11.1M 0 0 348k 0 0:00:32 0:00:32 -: -: – 476k

Ejecute el siguiente comando para establecer permisos de archivo.

[correo electrónico protegido]: / inicio / geekflare $ sudo chmod + x / usr / local / bin / docker-compose

Verifique si se instaló correctamente, debería devolver la versión docker-compose.

[correo electrónico protegido]: / inicio / geekflare $ docker-compose –version

docker-compose versión 1.23.1, compilación b02f1306

A continuación se muestra la lista de comandos que puede usar con docker-compose.

[correo electrónico protegido]: / inicio / geekflare $ docker-compose

Defina y ejecute aplicaciones de contenedores múltiples con Docker.

Uso:

docker-compose [-f …] [opciones] [COMANDO] [ARGS …]

docker-compose -h | –help

Opciones:

-f, –file ARCHIVO Especifica un archivo de composición alternativo

(predeterminado: docker-compose.yml)

-p, –project-name NAME Especifique un nombre de proyecto alternativo

(predeterminado: nombre del directorio)

–verbose Mostrar más resultados

–nivel de registro NIVEL Establecer nivel de registro (DEPURACIÓN, INFORMACIÓN, ADVERTENCIA, ERROR, CRÍTICO)

–no-ansi No imprime caracteres de control ANSI

-v, –version Versión de impresión y salir

-H, –host HOST Daemon socket para conectarse a

–tls Use TLS; implícito por –tlsverify

–tlscacert CA_PATH Certificados de confianza firmados solo por esta CA

–tlscert CLIENT_CERT_PATH Ruta al archivo de certificado TLS

–tlskey TLS_KEY_PATH Ruta al archivo de clave TLS

–tlsverify Use TLS y verifique el control remoto

–skip-hostname-check No verifique el nombre de host del daemon con el

nombre especificado en el certificado del cliente

–ruta del directorio del proyecto Especifique un directorio de trabajo alternativo

(predeterminado: la ruta del archivo Compose)

–compatibilidad Si se establece, Compose intentará convertir la implementación

claves en archivos v3 a su equivalente no enjambre

Comandos:

construir Construir o reconstruir servicios

paquete Generar un paquete Docker desde el archivo de composición

config Validar y ver el archivo de composición

crear Crear servicios

abajo Detener y eliminar contenedores, redes, imágenes y volúmenes.

eventos Reciba eventos en tiempo real desde contenedores

exec Ejecuta un comando en un contenedor en ejecución

ayuda Obtenga ayuda sobre un comando

imágenes Lista de imágenes

matar a los contenedores de matar

registros Ver salida de contenedores

pausa servicios de pausa

puerto Imprime el puerto público para un enlace de puerto

ps Lista de contenedores

pull Pull images de servicio

push Push imágenes de servicio

reiniciar Reiniciar servicios

rm Retire los contenedores detenidos

ejecutar Ejecutar un comando único

escala Establecer el número de contenedores para un servicio

inicio Servicios de inicio

detener detener servicios

arriba Mostrar los procesos en ejecución

sin pausa Sin pausa servicios

Crear e iniciar contenedores

version Muestra la información de la versión Docker-Compose

Docker Compose File

Aquí hay un ejemplo de archivo docker-compose que hace toda la magia.

versión: ‘3’

servicios:

web:

construir: .

puertos:

– "5000: 5000"

redis:

imagen: "redis: alpino"

La primera línea de este archivo especifica la versión que se está utilizando. Este número depende del motor Docker instalado en su sistema. Tengo instalado Docker 18.09.6 que pertenece a la versión 3 de docker-compose. Vea más detalles sobre versiones aquí – https://docs.docker.com/compose/compose-file/compose-versioning/

Este archivo acoplable ejecuta dos servicios / aplicaciones, web y Redis. El servicio web se crea a través de un dockerfile y se ejecuta en el puerto predeterminado del servidor web del matraz: 5000. El servicio de Redis se ejecuta al extraer la imagen de Redis del registro de Docker Hub.

Para ejecutar el archivo docker-compose.yml, debe ejecutar un comando muy simple: docker-compose up

Docker Compose Workflow

A continuación se detallan los tres pasos para usar docker-compose.

  1. Crear dockerfile de cada servicio
  2. Cree un archivo docker-compose.yml para conectar todos los dockerfiles
  3. Ejecute el comando docker-compose up para iniciar el sistema

Permítanme tomar un ejemplo del ejemplo de archivo docker-compose que vimos anteriormente y mostrarles cómo se creará la estructura del proyecto.

my-app

| —– web

| ——— Dockerfile

| —– redis

| docker-compose.yml

my-app es mi directorio principal de proyectos. Este directorio tiene directorios web y de servicios Redis y el archivo YAML compuesto por docker. Dockerfile of Web service está presente en un directorio web. Dado que el servicio de Redis se extrae directamente de Docker Hub, no se requiere ningún dockerfile en el directorio de Redis. Así es como se ve el flujo de trabajo docker-compose.

Contenedor de una aplicación MEAN Stack usando Docker Compose

Ahora que has entendido los conceptos fundamentales. Permítanme mostrar una demostración sobre cómo contenerizar una aplicación MEAN stack usando docker-compose.

MEAN significa MongoDB, Express, Angular y Node.js. Las aplicaciones que usan estos servicios juntos también se denominan una aplicación MEAN / Full-stack.

Para esta demostración, ejecutaremos tres contenedores docker:

  • Contenedor 1 – Angular
  • Contenedor 2 – NodeJS y ExpressJS
  • Contenedor 3 – MongoDB

Descargue la solicitud completa aquí: http://bit.ly/2St7r3A (no probado para producción)

Así es como se verá mi archivo docker-compose.yml para ejecutar estos tres contenedores:

versión: ‘3’

servicios:

angular:

build: angular-client

puertos:

– "4200: 4200"

volúmenes:

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

Rápido:

construcción: servidor express

puertos:

– "3000: 3000"

volúmenes:

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

Enlaces:

– base de datos

base de datos:

imagen: mongo

puertos:

– "27017: 27017"

  • La primera línea especifica la versión docker-compose que se utiliza
  • Estamos ejecutando tres servicios: angular, express y base de datos.
  • El servicio angular se construirá utilizando un dockerfile. Se ejecutará en el puerto 4200, y el volumen de la aplicación es / var / www / app
  • El servicio expreso se creará utilizando un dockerfile. El servidor express se ejecutará en el puerto 3000, y el volumen es / var / www / app
  • El servicio de base de datos extraerá la imagen de MongoDB de dockerhub y la iniciará en la publicación 27017

Extraiga el proyecto en el directorio de inicio y vaya al directorio angular-client.

[correo electrónico protegido]: ~ $ cd significa

[correo electrónico protegido]: ~ / mean $ cd angular-client

Ejecute el siguiente comando si no tiene instalado el administrador de paquetes de nodos (npm) en su sistema (ignore si está instalado).

[correo electrónico protegido]: ~ / mean / angular-client $ sudo apt install npm

[sudo] contraseña para geekflare:

Leyendo listas de paquetes … Hecho

Construyendo árbol de dependencia

Leyendo información del estado … Hecho

Se instalarán los siguientes paquetes adicionales:

gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-hereda libjs-is-typedarray

libjs-jquery libjs-node-uuid libjs-subrayado 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-balance-match node-block-stream node-bluebird

node-boom node-brace-expansion node-builtin-modules node-camelcase node-caseless node-chalk node-cliui

nodo-clonar nodo-co nodo-color-convertir nodo-color-nombre nodo-combinado-flujo nodo-concat-mapa

cadena de configuración de nodo cadena de control de consola de nodo nodo-cookie-jar node-copy-concurrentemente node-core-util-is

node-yallist node-yargs node-yargs-parser nodejs nodejs-dev nodejs-doc

Paquetes sugeridos:

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

Se instalarán los siguientes paquetes NUEVOS:

gyp javascript-common libc-ares2 libhttp-parser2.8 libjs-async libjs-hereda libjs-is-typedarray

libjs-jquery libjs-node-uuid libjs-subrayado 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-balance-match node-block-stream node-bluebird

0 actualizado, 212 recién instalado, 0 para eliminar y 233 no actualizado.

Necesita obtener 10.5 MB de archivos.

Después de esta operación, se utilizarán 53,6 MB de espacio adicional en disco.

¿Quieres continuar? [S / n] S

Obtenga: 1 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 gyp all 0.1 + 20180428git4d467626-1 [237 kB]

Obtenga: 2 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 javascript-common all 11 [6.066 B]

Obtenga: 3 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 libhttp-parser2.8 amd64 2.8.1-1 [20.8 kB]

Obtenga: 4 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libjs-async all 0.8.0-3 [25.4 kB]

Obtenga: 5 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libjs-is-typedarray all 1.0.0-2 [2,934 B]

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

Obtenga: 7 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libjs-node-uuid all 1.4.7-5 [11.5 kB]

Obtenga: 8 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 libjs-underscore all 1.8.3 ~ dfsg-1 [59.9 kB]

Obtenga: 9 http://us.archive.ubuntu.com/ubuntu cosmic-updates / main amd64 libssl1.0-dev amd64 1.0.2n-1ubuntu6.2 [1,366 kB]

Obtenido 10.5 MB en 1 min 34 s (112 kB / s)

Extraer plantillas de paquetes: 100%

Selección de paquete gyp no seleccionado previamente.

(Leyendo la base de datos … 180130 archivos y directorios actualmente instalados).

Preparándose para desempaquetar … / 000-gyp_0.1 + 20180428git4d467626-1_all.deb …

Desempaque de gyp (0.1 + 20180428git4d467626-1) …

Selección de paquete no seleccionado previamente javascript-common.

Preparándose para desempaquetar … / 001-javascript-common_11_all.deb …

Desempaquetado javascript-common (11) …

Selección del paquete libhttp-parser2.8 previamente no seleccionado: amd64.

Preparándose para desempaquetar … / 002-libhttp-parser2.8_2.8.1-1_amd64.deb …

Configuración de nodo-fstream-ignore (0.0.6-2) …

Configuración de nodo-gyp (3.6.2-2) …

Configuración de hilos de nodo (10.0.3-2) …

Configuración de npm (5.8.0 + ds-2) …

Procesador de disparadores para libc-bin (2.28-0ubuntu1) …

En el directorio angular-client y ejecuta npm install.

[correo electrónico protegido]: ~ / mean / angular-client $ npm install

> [correo electrónico protegido] instalar / home / geekflare / mean / angular-client / node_modules / uws

> reconstrucción de nodo-gyp > build_log.txt 2>&1 || salida 0

> [correo electrónico protegido] instalar / home / geekflare / mean / angular-client / node_modules / node-sass

> nodo scripts / install.js

Descargando binario de https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node

Descarga completa ] – :

Binario guardado en /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

Almacenamiento en caché binario a /home/geekflare/.npm/node-sass/4.7.2/linux-x64-57_binding.node

> [correo electrónico protegido] postinstall / home / geekflare / mean / angular-client / node_modules / webpack / node_modules / uglifyjs-webpack-plugin

> nodo lib / post_install.js

> [correo electrónico protegido] postinstall / home / geekflare / mean / angular-client / node_modules / node-sass

> nodo scripts / build.js

Binario encontrado en /home/geekflare/mean/angular-client/node_modules/node-sass/vendor/linux-x64-57/binding.node

Prueba binaria

Binario está bien

se agregaron 1457 paquetes de 1250 contribuyentes en 80.009s

Ahora ve al directorio express y ejecuta npm install.

[correo electrónico protegido]: ~ / mean / angular-client $ cd ..

[correo electrónico protegido]: ~ / mean $ cd express-server /

[correo electrónico protegido]: ~ / mean / express-server $ npm install

Ahora que todo está configurado, es hora de ejecutar el archivo docker-compose.yml que lanzará todos los contenedores docker y ejecutará la aplicación MEAN stack.

[correo electrónico protegido]: ~ / mean / express-server $ cd ..

[correo electrónico protegido]: ~ / mean $ docker-compose

Creando red "mean_default" con el controlador predeterminado

Construcción angular

Paso 1/8: DESDE nodo: 8

8: Extracción de biblioteca / nodo

a4d8138d0f6b: extracción completa

dbdc36973392: extracción completa

f59d6d019dd5: extracción completa

aaef3e026258: extracción completa

6e454d3b6c28: extracción completa

c717a7c205aa: extracción completa

37add8e5ac11: Pull complete

0314ab675d31: extracción completa

012886364728: extracción completa

Resumen: sha256: 310db2abcff097ef44af205d81833282a6d5471002a1b59d7b7459a74152c856

Estado: Nueva imagen descargada para el nodo: 8

—> 8e45c884a32e

Paso 2/8: EJECUTAR mkdir -p / var / www / app

—> Corriendo en c70a0cab7994

Extracción del contenedor intermedio c70a0cab7994

—> 001c5e840b24

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

—> Corriendo en 622ebdc41b2f

Extracción del contenedor intermedio 622ebdc41b2f

—> baa2e2347259

Paso 4/8: COPIE package.json / var / www / app

—> 5b97543befab

Paso 5/8: RUN npm install

—> Corriendo en 73e3d8b7a701

> [correo electrónico protegido] instalar / var / www / app / node_modules / uws

> reconstrucción de nodo-gyp > build_log.txt 2>&1 || salida 0

> [correo electrónico protegido] instalar / var / www / app / node_modules / node-sass

> scripts de nodo / install.js

Descargando binario de https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node

Descarga completa

Binario guardado en /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Almacenamiento en caché binario a /root/.npm/node-sass/4.12.0/linux-x64-57_binding.node

> [correo electrónico protegido] postinstall / var / www / app / node_modules / core-js

> guiones de nodo / postinstall || eco "ignorar"

¡El proyecto necesita tu ayuda! Considere el soporte de core-js en Open Collective o Patreon:

> https://opencollective.com/core-js

> https://www.patreon.com/zloirock

> [correo electrónico protegido] postinstall / var / www / app / node_modules / webpack / node_modules / uglifyjs-webpack-plugin

> nodo lib / post_install.js

> [correo electrónico protegido] postinstall / var / www / app / node_modules / node-sass

> nodo scripts / build.js

Binario encontrado en /var/www/app/node_modules/node-sass/vendor/linux-x64-57/binding.node

Prueba binaria

Binario está bien

agregó 1606 paquetes de 1329 contribuyentes y auditó 15092 paquetes en 112.427s

Extracción del contenedor intermedio 73e3d8b7a701

—> 55790d2fae93

Paso 6/8: COPIAR. / var / www / app

—> 61537aa487f4

Paso 7/8: EXPONER 4200

—> Corriendo en 632eedc35a45

Extracción del contenedor intermedio 632eedc35a45

—> 51e75b0e2ebe

Paso 8/8: CMD ["npm", "comienzo"]

—> Corriendo en 36bbb12a0d38

Extracción del contenedor intermedio 36bbb12a0d38

—> 9f8d61db600c

Construido con éxito 9f8d61db600c

Etiquetado correctamente mean_angular: latest

Extrayendo base de datos (mongo :)…

último: Tirando de la biblioteca / mongo

35b42117c431: extracción completa

ad9c569a8d98: extracción completa

293b44f45162: extracción completa

0c175077525d: extracción completa

4e73525b52ba: extracción completa

a22695a3f5e9: extracción completa

c5175bcf2977: extracción completa

3e320da07793: extracción completa

01c6db6b2b5a: extracción completa

3bd6e9d03e78: extracción completa

e03dcf51513f: extracción completa

c1956a9e136a: extracción completa

4c35cf22b1d5: extracción completa

Edificio expreso

Paso 1/9: DESDE nodo: 8

—> 8e45c884a32e

Paso 2/9: EJECUTAR mkdir -p / var / www / app

—> Usando caché

—> 001c5e840b24

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

—> Usando caché

—> baa2e2347259

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

—> 0232ad53c679

Paso 5/9: RUN npm install

—> Corriendo en c309bf6f218e

agregó 128 paquetes de 151 contribuyentes y auditó 233 paquetes en 9.055s

Extracción del contenedor intermedio c309bf6f218e

—> 49e652884562

Paso 6/9: EJECUTAR npm install -g nodemon

—> Corriendo en 0ed5d7f3642b

/ usr / local / bin / nodemon -> /usr/local/lib/node_modules/nodemon/bin/nodemon.js

> [correo electrónico protegido] postinstall / usr / local / lib / node_modules / nodemon

> nodo bin / postinstall || salida 0

Amor nodemon? Ahora puede apoyar el proyecto a través del colectivo abierto:

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

+ [correo electrónico protegido]

221 paquetes agregados de 128 contribuyentes en 18.856

Extracción del contenedor intermedio 0ed5d7f3642b

—> 32c55606f35e

Paso 7/9: COPIAR. / var / www / app

—> a618b38a2812

Paso 8/9: EXPOSE 3000

—> Corriendo en bea389ab3ef1

Extracción del contenedor intermedio bea389ab3ef1

—> 684bbfb31371

Paso 9/9: CMD ["npm", "comienzo"]

—> Corriendo en 9aa1b72e4a4e

Retirar el recipiente intermedio 9aa1b72e4a4e

—> 35dcb3df9806

Construido con éxito 35dcb3df9806

Etiquetado correctamente mean_express: último

Creando mean_angular_1_de44b3f5b988 … hecho

Creando mean_database_1_708f8f9c3c33 … hecho

Creando mean_express_1_b57a483a72ee … hecho

Adjuntar a mean_angular_1_f257e2233ef1, mean_database_1_ccc5c677e00b, mean_express_1_574f07b045fc

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | > [correo electrónico protegido] inicio / var / www / app

angular_1_f257e2233ef1 | > ng servir -H 0.0.0.0

angular_1_f257e2233ef1 |

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.933 + 0000 I CONTROL [principal] Desactivación automática de TLS 1.0, para forzar la habilitación de TLS 1.0 especificar –sslDisabledProtocols ‘none’

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] Inicio de MongoDB: pid = 1 puerto = 27017 dbpath = / data / db host de 64 bits = f74b56905249

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] db versión v4.0.10

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] versión git: c389e7f69f637f7a1ac3cc9fae843b635f20b766

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] Versión OpenSSL: OpenSSL 1.0.2g 1 mar 2016

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] asignador: tcmalloc

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] módulos: ninguno

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] entorno de construcción:

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [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 CONTROL [initandlisten] target_arch: x86_64

database_1_ccc5c677e00b | 2019-07-20T22: 33: 25.937 + 0000 I CONTROL [initandlisten] opciones: {net: {bindIpAll: true}}

express_1_574f07b045fc |

express_1_574f07b045fc | > [correo electrónico protegido] inicio / var / www / app

express_1_574f07b045fc | > nodemon ./bin/www

express_1_574f07b045fc |

express_1_574f07b045fc | [nodemon] 1.19.1

express_1_574f07b045fc | [nodemon] para reiniciar en cualquier momento, ingrese `rs`

express_1_574f07b045fc | [nodemon] mirando: *. *

express_1_574f07b045fc | [nodemon] comenzando `node. / bin / www`

database_1_ccc5c677e00b | 2019-07-20T22: 33: 33.543 + 0000 I RED [conexión] conexión aceptada desde 172.19.0.4:38958 # 1 (1 conexión ahora abierta)

database_1_ccc5c677e00b | 2019-07-20T22: 33: 33.560 + 0000 I NETWORK [conn1] recibió metadatos del cliente de 172.19.0.4:38958 conn1: {driver: {name: "nodejs", versión: "3.0.1" }, os: {type: "Linux", nombre: "linux", arquitectura: "x64", versión: "4.18.0-25-genérico" }, plataforma: "Node.js v8.16.0, LE, mongodb-core: 3.0.1" }

express_1_574f07b045fc | mongodb: conectado

angular_1_f257e2233ef1 | ** NG Live Development Server está escuchando en 0.0.0.0:4200, abra su navegador en http: // localhost: 4200 / **

angular_1_f257e2233ef1 | Fecha: 2019-07-21T11: 21: 03.868Z – Hash: 639d9a968476ed482b5c – Tiempo: 336ms

angular_1_f257e2233ef1 | 4 trozos sin cambios

angular_1_f257e2233ef1 | trozo {main} main.bundle.js (main) 19.8 kB [inicial] [renderizado]

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | paquete web: compilado con éxito.

angular_1_f257e2233ef1 | paquete web: compilación…

angular_1_f257e2233ef1 | Fecha: 2019-07-21T11: 25: 15.661Z – Hash: e5a2b1c1afe0deb396c3 – Tiempo: 251ms

angular_1_f257e2233ef1 | 4 trozos sin cambios

angular_1_f257e2233ef1 | trozo {main} main.bundle.js (main) 19.8 kB [inicial] [renderizado]

angular_1_f257e2233ef1 |

angular_1_f257e2233ef1 | paquete web: compilado con éxito.

Vaya a su navegador y verifique https: // localhost: 4200, su aplicación estará en funcionamiento.

angular - docker componer

Ir https: // localhost: 3000 para verificar si se está ejecutando un servidor express.

express - docker componer

Además, puede ejecutar el comando docker images para ver qué imágenes están presentes en docker.

[correo electrónico protegido]: ~ / mean $ docker images

ID DE IMAGEN DE ETIQUETA DE REPOSITORIO TAMAÑO CREADO

mean_express última 35dcb3df9806 Hace 14 horas 923MB

mean_angular último 9f8d61db600c hace 14 horas 1.29GB

nodo 8 8e45c884a32e hace 9 días 895MB

mongo latest 785c65f61380 Hace 2 semanas 412MB

Ejecute el comando a continuación para ver los contenedores que se ejecutan dentro de la ventana acoplable.

[correo electrónico protegido]: ~ / mean $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

681c9c34bee2 mean_express        "docker-entrypoint.s …"   Hace 14 horas Hasta 14 horas 0.0.0.0:3000->3000 / tcp mean_express_1_574f07b045fc

f74b56905249 mongo               "docker-entrypoint.s …"   Hace 14 horas Hasta 14 horas 0.0.0.0:27017->27017 / tcp mean_database_1_ccc5c677e00b

260ef1e52dab mean_angular        "docker-entrypoint.s …"   Hace 14 horas Hasta 14 horas 0.0.0.0:4200->4200 / tcp mean_angular_1_f257e2233ef1

Así que ahora, los tres contenedores acoplables están en funcionamiento.

Docker-compose se encargó de ejecutar todos los contenedores con facilidad. Este fue un ejemplo simple para ejecutar tres contenedores; Puedes imaginar lo útil que será si las aplicaciones se inician en cientos de contenedores. Anímate y prueba para ver cómo funciona.

TAGS:

  • Estibador

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map