Trinn 1: Lag din Node-applikasjon
Trinn 2: Lag en Dockerfile
Trinn 3: Bygg bilde
Trinn 4: Distribuer og test applikasjonen
Denne artikkelen vil vise deg hvordan du distribuerer Node-applikasjonen din i en Docker-beholder.
Merk: Denne opplæringen forutsetter at du har Docker installert og klar til bruk.
Trinn 1: Lag din Node-applikasjon
Opprett en katalog kalt src
. Vi kommer til å bruke den katalogen. Lag en fil med navnet som src/package.json
inneholder følgende:
{
"name": "hello_world",
"private": true,
"version": "0.0.1",
"description": "Hello world Example",
"author": "",
"dependencies": {
"express": "3.2.4"
}
}
Lag nå en som src/index.js
inneholder følgende:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello from Docker\n');
});
app.listen(8080);
console.log('Running on http://localhost:8080');
Vær oppmerksom på at du kan endre porten 8080
til hva du ønsker, men for dette eksempelet vil vi utsette denne porten for bruk for applikasjonen vår. Når du har opprettet disse to filene, kan du fortsette til neste trinn.
Trinn 2: Lag en Dockerfile
En "Dockerfile" lar deg bygge og distribuere Docker-bilder basert på settet med instruksjoner du har gitt i den. Opprett en fil med navn Dockerfile
og fyll den med følgende innhold:
FROM centos:latest
MAINTAINER Name Here <username@localhost>
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
COPY ./src /opt/src
RUN cd /opt/src; npm install
EXPOSE 8080
CMD ["node", "/opt/src/index.js"]
Forklaring:
FROM centos:latest
This will use an image called centos
. If there is no image available on your host, Docker will pull one from its repository.
MAINTAINER Name Here <username@localhost>
This instruction allows you to set the author for the image being created.
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
…
RUN cd /opt/src; npm install
"RUN" will execute the shell commands given. In this example, it will download the epel-release rpm and install it, and install nodejs and npm from its repository. After the next operation, it will cd into the project directory and run npm install
to install dependencies for your application.
COPY ./src /opt/src
Copy the directory (and files) from the host into the container.
EXPOSE 8080
Open port 8080 for the outside world to use.
CMD ["node", "/opt/src/index.js"]
CMD
will provide default execution for the container.
Når du har opprettet filen nøyaktig slik den er vist ovenfor, kan du gå videre til neste trinn.
Trinn 3: Bygg bilde
For å bygge bildet ditt, kjør følgende kommando:
docker build -t name/application .
Dette vil lage et bilde med et depotnavn på name/application
. Hvis det ikke er noen feil, kan du gå videre til neste trinn.
Trinn 4: Distribuer og test applikasjonen
Nå som alt er konfigurert, kan du kjøre bildet ditt ved å kjøre følgende:
docker run -p 49160:8080 -d name/application
For å teste applikasjonen din, kjør følgende kommando fra verten:
curl http://172.17.42.1:49160/
Hvis du ser, Hello from Docker
har du implementert Docker-bildet ditt. Hvis du ønsker å teste dette med nettleseren din, besøk http://[SERVER_IP]:49160
fra nettleseren din (erstatt IP-adressen tilsvarende), og du vil se den samme meldingen.