Dockerizar una aplicación incluye especificar todos los requisitos previos necesarios para ejecutar la aplicación y luego utilizar Dockerfile para crear una imagen de Docker especializada que se pueda compartir con varias máquinas. Dockerizando un “ Nodo.js La aplicación mejora la coherencia y garantiza una depuración cómoda por parte del desarrollador.
Requisitos previos
Los requisitos previos para dockerizar un ' Nodo.js La aplicación incluye lo siguiente:
- Instalación de Docker.
- Comprensión básica de la aplicación Node.js.
¿Cómo acoplar una aplicación Node.js?
A ' Nodo.js La aplicación se puede acoplar mediante los siguientes pasos:
Paso 1: cree un archivo 'paquete.json'
Primero, cree un nuevo directorio donde estarán compuestos todos los archivos. Dentro de este directorio, cree el “ paquete.json ”archivo que representa la aplicación junto con sus dependencias:
{'nombre' : 'docker_web_app' ,
'versión' : '1.0.0' ,
'descripción' : 'Node.js en Docker' ,
'autor' : 'Primero último ' ,
'principal' : 'servidor.js' ,
'guiones' : {
'comenzar' : 'servidor de nodo.js'
} ,
'dependencias' : {
'expresar' : '^4.18.2'
} }
Paso 2: genere un archivo 'package-lock.json'
Dentro del archivo “package.json”, ejecute el comando “ instalación npm ”cmdlet. Esto generará un “ paquete-lock.json ”archivo que se copia a la imagen de Docker, de la siguiente manera:
npm instalar
Paso 3: crear un servidor
Después de eso, cree un ' servidor.js 'Archivo que declara una aplicación web utilizando el' expreso.js ' estructura:
'uso estricto' ;constante expresa = requerir ( 'expresar' ) ;
PUERTO constante = 8080 ;
constante ANFITRIÓN = '0.0.0.0' ;
aplicación constante = expreso ( ) ;
aplicación.get ( '/' , ( solicitar, res ) = > {
res.enviar ( 'Hola Mundo' ) ;
} ) ;
aplicación.escuchar ( PUERTO, ANFITRIÓN, ( ) = > {
consola.log ( ` Ejecutando en http: // ${HOST} : ${PUERTO} ` ) ;
} ) ;
Ahora, pasemos a las metodologías para ejecutar la aplicación dentro de un contenedor Docker a través de una imagen oficial de Docker.
Paso 4: crea un archivo Docker
Cree un Dockerfile manualmente dentro del mismo directorio que comprende todos los archivos. En este archivo, escriba la siguiente línea de código:
DESDE nodo: 18DIRTRABAJO / usr / src / aplicación
COPIAR paquete * .json. /
EJECUTAR npm instalar
COPIAR . .
EXPONER 8080
CMD [ 'nodo' , 'servidor.js' ]
En el fragmento de código anterior, aplique los pasos que se indican a continuación:
- Primero, utilice la última versión 18 de soporte a largo plazo del nodo como imagen base contenida en Centro acoplable .
- Después de eso, cree un directorio para contener el código de la aplicación en la imagen.
- Esto representa el directorio de trabajo de la aplicación.
- Ahora, instale las dependencias de la aplicación a través de ' npm ”.
- Nota: Si se utiliza la versión 4 o anterior de npm, no se creará un archivo “package-lock.json”.
- Ahora, copia el “ paquete.json ' archivo. Además, incluya el código fuente de la aplicación dentro de la imagen de Docker a través del botón ' COPIAR ' instrucción.
- Utilice el ' EXPONER 'Instrucción para permitir que la aplicación se vincule al puerto 8080.
- Finalmente, defina el cmdlet para ejecutar la aplicación a través de CMD que define el tiempo de ejecución. Aquí el ' servidor de nodo.js Se utilizará el cmdlet para iniciar el servidor.
Paso 5: cree un archivo '.dockerignore'
Cree un archivo '.dockerignore' en el archivo ' archivo acoplable ”directorio/carpeta que comprende el contenido que se proporciona a continuación:
módulos_nodonpm-debug.log
Este contenido evita que los módulos locales y los registros de depuración, respectivamente, se copien en la imagen de Docker.
Paso 6: construye la imagen
Ahora, dentro del directorio que comprende el Dockerfile, cree la imagen usando el cmdlet que se indica a continuación:
construcción de ventana acoplable. -t nodejs / aplicación-web-nodo
En este cmdlet, “ nodejs ' se refiere al nombre del directorio, así que especifique el cmdlet en consecuencia y el ' -t La bandera etiqueta la imagen.
Ahora, enumere las imágenes mediante este comando:
Imágenes de docker
Paso 7: ejecute la imagen
Ejecute/ejecute la imagen usando el cmdlet que se indica a continuación:
ejecución de la ventana acoplable -pag 49160 : 8080 -d nodejs / aplicación-web-nodo
Aquí el ' -pag 'La bandera redirige un puerto público a uno privado dentro del contenedor y el' -d 'El indicador ejecuta el contenedor en modo independiente, es decir, en segundo plano.
Paso 8: generar el resultado de la aplicación
Ahora, imprima el resultado de la aplicación usando los siguientes comandos:
estibador PDregistros de la ventana acoplable 77b1e3c8576e
Si es necesario navegar dentro del contenedor, utilice la opción ' ejecutivo 'cmdlet:
estibador ejecutivo -él 77b1e3c8576e / papelera / intento
Aquí, ' 77b1e3c8576e 'Representa el ID del contenedor que se puede copiar mediante el comando' ejecutado. ventana acoplable ps ”comando anteriormente.
Paso 9: Probar la aplicación
Para probar la aplicación, recupere el puerto de la aplicación que Docker asignó:
estibador PD
En el cmdlet anterior, Docker asignó el ' 8080 “puerto dentro del contenedor al puerto” 49160 ' en la maquina.
Paso 10: Invocar la aplicación
Invoque la aplicación a través del botón “ rizo ” cmdlet haciendo referencia al puerto asignado anteriormente e ingresando los valores requeridos:
rizo -i servidor local: 49160
Paso 11: cerrar/eliminar la aplicación
Por último, cierre la aplicación a través del botón ' matar 'cmdlet:
estibador matar 77b1e3c8576e
Además, confirme si la aplicación se detuvo mediante este comando con valores de entrada:
rizo -i servidor local: 49160
Conclusión
A ' Nodo.js ”la aplicación se puede dockerizar creando un servidor, un archivo docker, el archivo “.dockerignore”, creando y ejecutando la imagen, generando la salida de la aplicación y probando, cerrando y confirmando la detención de la aplicación. Este artículo detalla la dockerización de una aplicación Node.js.