GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Guía de Docker:aplicación Dockerizing Nodejs Express en Ubuntu 18.04

Docker es un proyecto de código abierto que proporciona una plataforma abierta para desarrolladores y administradores de sistemas para crear, empaquetar y ejecutar aplicaciones en cualquier lugar como un contenedor ligero. Docker automatiza la implementación de aplicaciones dentro de contenedores de software.

Nodejs es un entorno de tiempo de ejecución de JavaScript de código abierto. Es un tiempo de ejecución multiplataforma, se puede instalar en Linux, Windows, MacOS, FreeBSD, etc. Nodejs es muy útil para crear aplicaciones de servidor y de escritorio.

En este tutorial, le mostraré cómo crear una imagen acoplable para un proyecto de aplicación Nodejs Express existente en Ubuntu 18.04. Aprenderemos a acoplar una aplicación de Nodejs y luego implementaremos la aplicación como un contenedor en el entorno de la ventana acoplable mediante un script de composición de la ventana acoplable.

Requisitos

  • Ubuntu 18.04
  • Privilegios de raíz

Lo que haremos

  1. Instalar Docker CE
  2. Instalar Docker-Compose
  3. Configurar proyecto Nodejs Express
  4. Crear el proyecto
  5. Pruebas

Paso 1:instalar Docker CE

En este tutorial, instalaremos la edición comunitaria de docker-ce desde el repositorio de docker. Instalaremos la edición comunitaria docker-ce y docker-compose que admite la versión 3 del archivo de composición.

Antes de instalar docker-ce, instale las dependencias de docker necesarias con el comando apt.

sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Ahora agregue la clave de la ventana acoplable y el repositorio ejecutando los comandos a continuación.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Instale el paquete docker-ce.

sudo apt install docker-ce

Una vez completada la instalación, inicie el servicio Docker y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start docker
systemctl enable docker

A continuación, otorgaremos privilegios de usuario normales para ejecutar y administrar el contenedor docker.

Agregue un nuevo usuario llamado 'mohammad' y agréguelo al grupo docker.

useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad

Ahora inicie sesión como el usuario 'mohammad' y ejecute el contenedor docker hello-world.

su - mohammad
docker run hello-world

Y obtendrá el resultado como se muestra a continuación.

Paso 2:instalar Docker-Compose

En este paso, instalaremos docker-compose manualmente desde el archivo binario que se puede descargar desde GitHub. Instalaremos la última versión de docker-compose que admitirá compose v3.

Descargue la última versión 1.22.0 de docker-compose usando el comando curl en el directorio '/usr/local/bin' y luego hágalo ejecutable usando chmod.

Ejecute los comandos a continuación.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Y se ha instalado la última versión de docker-compose, compruébelo ejecutando el siguiente comando docker-compose.

docker-compose version

El siguiente es el resultado.

Paso 3:configurar el proyecto Nodejs Express

En esta sección, configuraremos el entorno de la aplicación Nodejs. Usaremos una aplicación nodejs simple que se puede generar usando el 'express-generator'.

Inicie sesión con el usuario 'mohammad'.

su - mohammad

Crea un nuevo directorio llamado 'proyecto' y ve a él.

mkdir -p project
cd project

Ahora genere una aplicación nodejs de hola-palabra simple usando el comando 'express' a continuación.

express hakase-app

Nota:

Asegúrese de que nodejs, npm y los paquetes 'express-generator' se hayan instalado en el sistema.

Y obtendrá la sencilla aplicación nodejs express en el directorio 'hakase-app'.

A continuación, crearemos nuestra imagen acoplable personalizada para la aplicación nodejs 'hakase-app'.

En el directorio 'proyecto', cree un nuevo 'Dockerfile' usando vim.

vim Dockerfile

Pegue la siguiente configuración de imagen de la ventana acoplable allí.

FROM node:8.11.4-alpine

RUN mkdir -p /src
RUN npm install express-generator -g

WORKDIR /src
ADD hakase-app/package.json /src/package.json
RUN npm install

EXPOSE 3000
CMD node hakase-app/bin/www

Guardar y salir.

Estamos creando una nueva imagen acoplable personalizada para nuestra aplicación nodejs con las especificaciones a continuación.

  • La imagen personalizada se basa en la versión alpina oficial de nodejs image 8.11.4.
  • Estamos creando un nuevo directorio para nuestro proyecto '/src'.
  • Instala el 'express-generator' en la imagen personalizada.
  • Agregue el archivo 'package.json' que contiene el perfil de la aplicación y los paquetes necesarios al directorio '/src'.
  • Instale todos los paquetes de nodejs necesarios para el proyecto, según el archivo 'package.json'.
  • Exportar el puerto 3000 con el comando de inicio exec predeterminado 'node hakase-app/bin/www'.

A continuación, construiremos la imagen personalizada basada en el script docker-compose.

Cree un nuevo archivo yml 'docker-compose.yml' usando vim.

vim docker-compose.yml

Pegue la siguiente configuración allí.

version: '3'

services:

  hakase-app:
    build: .
    volumes:
      - ./hakase-app:/src/hakase-app
    ports:
      - "3000:3000"
    restart: always

Guardar y salir.

Estamos creando un nuevo servicio docker llamado 'hakase-app' y, al mismo tiempo, estamos creando la imagen de docker personalizada basada en el 'Dockerfile' en el directorio del proyecto y montaremos automáticamente los archivos de la aplicación hakase-app.

La configuración rápida de Nodejs se ha completado.

Paso 4:compilar y ejecutar el proyecto

Inicie sesión como usuario 'mohammad' y vaya al directorio 'proyecto'

su - mohammad
cd project/

Compile la imagen y cree la aplicación docker service hakase-app usando el comando docker-compose a continuación.

docker-compose build

Ahora obtendrá el resultado como se muestra a continuación.

Y cuando esté completo, ejecute el servicio docker 'hakase-app'.

docker-compose up -d

El siguiente es el resultado.

Se ha creado la imagen de la ventana acoplable personalizada para nuestra aplicación Nodejs y el servicio de la ventana acoplable hakase-app está en funcionamiento.

Paso 5 - Prueba

Muestra la imagen acoplable disponible en el servidor.

docker-compose images
docker images

Se ha creado una nueva imagen acoplable personalizada para nuestra aplicación Nodejs.

Muestra el servicio Docker en ejecución.

docker-compose ps
docker ps

La aplicación Nodejs está funcionando en el puerto de host 3000.

Abra el navegador web y escriba la dirección IP del servidor con el puerto.

http://10.0.15.2:3000/

Y obtendrá la página express simple.

La aplicación Dockerizing Nodejs Express en Ubuntu 18.04 se completó con éxito.


Ubuntu
  1. Instale PostgreSQL en Ubuntu:una guía fácil de seguir

  2. Cómo instalar Docker Engine en Ubuntu:una guía paso a paso

  3. Cómo instalar Docker en Ubuntu 16.04

  4. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. Instalar qt en Ubuntu 20.04 - ¿Guía paso a paso?

Cómo instalar Docker en Ubuntu 20.04

Cómo instalar Docker en Ubuntu 22.04/20.04 LTS

Guía de Docker:Dockerización de la aplicación Python Django

Cómo instalar Docker en Ubuntu 20.04, 18.04, 21.04

Cómo instalar Docker en Ubuntu 14.04

Instalar Docker en Ubuntu:una guía paso a paso