W tym artykule wyjaśni ci, jak zbudować aplikację Nodejs z konteneryzacją Docker. Docker pozwala pakować i uruchamiać aplikacje jako kontenery.
Dzisiaj rozpoczynamy serię samouczków na temat narzędzi do tworzenia oprogramowania. W tym pierwszym artykule obejmuje sposób kontenerowania aplikacji node.js za pomocą Docker. Docker pomaga programistom pakować i uruchamiać aplikacje jako kontenery. Ponieważ pojemnik jest izolowanym procesem i lekką alternatywą dla maszyn wirtualnych. W tym artykule wyjaśniono, jak zbudować aplikację Nodejs z konteneryzacją Docker. Zacznijmy!
- What Is Docker
- Wymagania wstępne
- Ustawienie aplikacji Node.js
- Write Dockerfile
- Zbuduj obraz i uruchom kontener Docker
- Wniosek
Co to jest Docker
Docker to zestaw platformy jako produkty serwisowe, które wykorzystują wirtualizację poziomu systemu operacyjnego do dostarczania oprogramowania w pakietach o nazwie Containers. Jest to otwarta platforma do opracowywania, wysyłki i uruchamiania aplikacji. Docker umożliwia oddzielenie aplikacji od infrastruktury, aby szybko dostarczać oprogramowanie. Docker używa architektury klienta-serwera. Klient Docker rozmawia z Docker Daemon, który prowadzi ciężkie podnoszenie budowania, uruchomienia i dystrybucji kontenerów Docker. Klient Docker i Demon komunikują się za pomocą interfejsu API REST, ponad gniazdem UNIX lub interfejsu sieciowego. Oto schemat architektury Docker.
Wymagania wstępne
- Serwer Ubuntu
- Docker zainstalowany na serwerze
- Zainstalowany node.js
Aplikacja konfiguracyjna node.js
Aby utworzyć swój obraz, najpierw musisz wykonać pliki aplikacji, które możesz następnie skopiować do kontenera. Te pliki będą zawierać statyczną treść, kod i zależności aplikacji. Najpierw utwórz katalog do swojego projektu w katalogu domowym użytkownika nie-root. Następnie wykonaj poniżej polecenie w nowym folderze, który utworzyłeś.
npm init -y
npm i -s express
Powyższe polecenie skonfiguruje aplikację Node.js z Express Framework zainstalowaną jako zależność. Dodajmy następujący kod do pliku app.js .
const express = require(‘express’);
const app = express();
app.get(‘/’, function(req,res){
res.send(“Hello World”);
});
const port = 3000;
app.listen(port, function () {
console.log(‘Listening on port 3000!’)
})
Uruchom aplikację z node app.js
node app.js
Przejdź do przeglądarki do http: // Your \ _Server \ _IP: 3000. Zobaczysz następującą stronę docelową. Teraz masz uruchomioną aplikację. Możemy teraz przejść, aby stworzyć Plik Docker, który pozwoli nam odtworzyć i skalować tę aplikację.
Napisz DockerFile
Korzystając z DockerFile, możesz określić, co zostanie zawarte w kontenerze aplikacji podczas jego wykonywania i środowisku kontenera. Przede wszystkim utwórz DockerFile z następującym poleceniem u podstaw projektu.
vi Dockerfile
Dodaj następujące z instrukcji, aby ustaw podstawowy obraz aplikacji:
FROM node:12-alpine
{{LINE_43}} {{LINE_44}} Możesz dodać plik .dockerignore, aby usunąć pliki, które nie należą do Docker Image. {{LINE_46}} {{LINE_47}} Utwórzmy Node_Modules Podkazorkodawstwo w /home /node wraz z katalogiem aplikacji. Zapewni to, że mają one potrzebne uprawnienia, które będą ważne, gdy utworzymy lokalne moduły węzłów w kontenerze z instalacją NPM.
...
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
Następnie ustaw katalog roboczy aplikacji na/home/node/aplikacja:
...
WORKDIR /home/node/app
Następnie skopiuj pakiet.json i pakiet-lock.json, przypisz plik projektu do „węzła” użytkownika nie-root, a następnie uruchom instalację NPM
...
COPY package*.json ./
USER node
RUN npm install
Skopiuj kod aplikacji z odpowiednimi uprawnieniami do katalogu aplikacji na kontenerze
...
COPY --chown=node:node . .
Expose Command, aby wystawić port:
...
EXPOSE 3000
CMD [ "node", "app.js" ]
Ostateczna wersja DockerFile powinna wyglądać tak:
FROM node:12-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY --chown=node:node . .
EXPOSE 3000
CMD [ "node", "app.js" ]
Zbuduj obraz i uruchom pojemnik
Uruchom następujące polecenie, aby wygenerować obraz Docker
docker build -t <<image_name>> .
Wygeneruje to docker Image, który można sprawdzić za pomocą polecenia Docker Images. Możliwe jest teraz utworzenie pojemnika z tym obrazem za pomocą następującego polecenia:
docker run — name <<container_name>> -p 3000:3000 -d <<image_name>>
To uruchomi kontener, który możesz zweryfikować, uruchamiając polecenie Docker PS. Teraz w przeglądarce, jeśli uzyskujesz dostęp do http: // localhost: 3000, zobaczysz aplikację Node.js. Jednak tym razem teraz działa z twojego kontenera Docker.
Wniosek
Rozwój z kontenerem Docker jest bardzo prosty i łatwy. Docker pomaga programistom pakować i uruchamiać aplikacje jako kontenery. W tym samouczku nauczyliśmy się budować aplikację node.js za pomocą kontenera Docker na Ubuntu. W nadchodzących artykułach napiszymy o większych zastosowaniach Docker, a także omówimy inne narzędzia.