GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Guida Docker:Dockerizzazione dell'applicazione Nodejs Express su Ubuntu 18.04

Docker è un progetto open source che fornisce una piattaforma aperta a sviluppatori e amministratori di sistema per creare, impacchettare ed eseguire applicazioni ovunque come un contenitore leggero. Docker automatizza la distribuzione delle applicazioni all'interno di contenitori software.

Nodejs è un ambiente di runtime JavaScript open source. È runtime multipiattaforma, può essere installato su Linux, Windows, MacOS, FreeBSD, ecc. Nodejs è molto utile per creare applicazioni sia server che desktop.

In questo tutorial, ti mostrerò come creare un'immagine Docker per un progetto applicativo Nodejs Express esistente in Ubuntu 18.04. Impareremo come dockerizzare un'applicazione Nodejs e quindi distribuire l'applicazione come contenitore nell'ambiente docker utilizzando uno script di composizione docker.

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo

  1. Installa Docker CE
  2. Installa Docker-Compose
  3. Imposta il progetto Nodejs Express
  4. Costruisci il progetto
  5. Test

Passaggio 1:installazione di Docker CE

In questo tutorial, installeremo l'edizione community docker-ce dal repository docker. Installeremo docker-ce community edition e docker-compose che supporta la composizione del file versione 3.

Prima di installare docker-ce, installa le dipendenze docker necessarie usando il comando apt.

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

Ora aggiungi la chiave mobile e il repository eseguendo i comandi seguenti.

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"

Installa il pacchetto docker-ce.

sudo apt install docker-ce

Al termine dell'installazione, avvia il servizio Docker e abilitalo per l'avvio ogni volta all'avvio del sistema.

systemctl start docker
systemctl enable docker

Successivamente, daremo i normali privilegi utente per eseguire e gestire il contenitore Docker.

Aggiungi un nuovo utente chiamato 'mohammad' e aggiungilo al gruppo Docker.

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

Ora accedi come utente "mohammad" ed esegui il contenitore docker hello-world.

su - mohammad
docker run hello-world

E otterrai il risultato come mostrato di seguito.

Passaggio 2:installazione di Docker-Compose

In questo passaggio, installeremo manualmente docker-compose dal file binario che può essere scaricato da GitHub. Installeremo l'ultima versione di Docker-Compose che supporterà la Compose v3.

Scarica l'ultima versione 1.22.0 di docker-compose usando il comando curl nella directory '/usr/local/bin', quindi rendila eseguibile usando chmod.

Esegui i comandi seguenti.

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

E l'ultima versione di docker-compose è stata installata, controlla eseguendo il comando docker-compose di seguito.

docker-compose version

Di seguito il risultato.

Fase 3 - Configurazione del progetto Nodejs Express

In questa sezione, configureremo l'ambiente dell'applicazione Nodejs. Utilizzeremo una semplice applicazione nodejs che può essere generata utilizzando 'express-generator'.

Accedi all'utente 'mohammad'.

su - mohammad

Crea una nuova directory denominata 'progetto' e vai ad essa.

mkdir -p project
cd project

Ora genera una semplice applicazione nodejs di hello-word usando il comando 'express' di seguito.

express hakase-app

Nota:

Assicurati che i pacchetti nodejs, npm e 'express-generator' siano stati installati sul sistema.

E otterrai la semplice app nodejs express nella directory 'hakase-app'.

Successivamente, creeremo la nostra immagine docker personalizzata per l'applicazione nodejs 'hakase-app'.

Nella directory 'progetto', crea un nuovo 'Dockerfile' usando vim.

vim Dockerfile

Incolla lì la seguente configurazione dell'immagine della finestra mobile.

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

Salva ed esci.

Stiamo creando una nuova immagine Docker personalizzata per la nostra applicazione nodejs con le specifiche seguenti.

  • L'immagine personalizzata è basata sull'immagine ufficiale nodejs 8.11.4 alpine version.
  • Stiamo creando una nuova directory per il nostro progetto '/src'.
  • Installa 'express-generator' nell'immagine personalizzata.
  • Aggiungi il file 'package.json' che contiene il profilo dell'applicazione e i pacchetti necessari alla directory '/src'.
  • Installa tutti i pacchetti nodejs necessari per il progetto, in base al file 'package.json'.
  • Esporta la porta 3000 con il comando exec start predefinito 'node hakase-app/bin/www'.

Successivamente, creeremo l'immagine personalizzata in base allo script di composizione mobile.

Crea un nuovo file yml 'docker-compose.yml' usando vim.

vim docker-compose.yml

Incolla lì la seguente configurazione.

version: '3'

services:

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

Salva ed esci.

Stiamo creando un nuovo servizio docker chiamato 'hakase-app' e allo stesso tempo stiamo creando l'immagine docker personalizzata basata su 'Dockerfile' nella directory del progetto e monteremo automaticamente i file dell'applicazione hakase-app.

La configurazione di Nodejs Express è stata completata.

Fase 4:crea ed esegui il progetto

Accedi come utente 'mohammad' e vai alla directory 'progetto'

su - mohammad
cd project/

Crea l'immagine e crea il servizio docker hakase-app utilizzando il comando docker-compose di seguito.

docker-compose build

Ora otterrai il risultato come mostrato di seguito.

E quando è completo, esegui il servizio docker 'hakase-app'.

docker-compose up -d

Di seguito il risultato.

L'immagine della finestra mobile personalizzata per la nostra applicazione Nodejs è stata creata e il servizio della finestra mobile dell'app hakase è attivo e funzionante.

Fase 5 - Test

Mostra l'immagine della finestra mobile disponibile sul server.

docker-compose images
docker images

È stata creata una nuova immagine della finestra mobile personalizzata per la nostra applicazione Nodejs.

Mostra il servizio Docker in esecuzione.

docker-compose ps
docker ps

L'app Nodejs è attiva e funzionante sulla porta host 3000.

Apri il browser web e digita l'indirizzo IP del server con la porta.

http://10.0.15.2:3000/

E otterrai la semplice pagina express.

Dockerizzazione dell'applicazione Nodejs Express su Ubuntu 18.04 completata con successo.


Ubuntu
  1. Installa PostgreSQL su Ubuntu:una guida facile da seguire

  2. Come installare Docker Engine su Ubuntu:una guida passo passo

  3. Come installare Docker su Ubuntu 16.04

  4. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. Installa qt su Ubuntu 20.04 - Guida passo passo?

Come installare Docker su Ubuntu 20.04

Come installare Docker su Ubuntu 22.04 / 20.04 LTS

Guida Docker:Dockerizzazione dell'applicazione Python Django

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Come installare Docker su Ubuntu 14.04

Installa Docker su Ubuntu:una guida passo passo