Pas 1: creeu la vostra aplicació Node
Pas 2: creeu un Dockerfile
Pas 3: crear una imatge
Pas 4: implementeu i proveu l'aplicació
Aquest article us mostrarà com implementar la vostra aplicació Node dins d'un contenidor Docker.
Nota: aquest tutorial suposa que teniu Docker instal·lat i llest per utilitzar-lo.
Pas 1: creeu la vostra aplicació Node
Creeu un directori anomenat src
. Farem servir aquest directori. Creeu un fitxer anomenat src/package.json
que contingui el següent:
{
"name": "hello_world",
"private": true,
"version": "0.0.1",
"description": "Hello world Example",
"author": "",
"dependencies": {
"express": "3.2.4"
}
}
Ara creeu un src/index.js
que contingui el següent:
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');
Si us plau, sabeu que podeu canviar el port 8080
pel que vulgueu, però per a aquest exemple exposarem aquest port per utilitzar-lo per a la nostra aplicació. Un cop hàgiu creat aquests dos fitxers, podeu passar al següent pas.
Pas 2: creeu un Dockerfile
Un "Dockerfile" us permet crear i desplegar imatges de Docker en funció del conjunt d'instruccions que hi heu proporcionat. Creeu un fitxer anomenat Dockerfile
i empleneu-lo amb el contingut següent:
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"]
Explicació:
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.
Un cop hàgiu creat el fitxer exactament com es mostra a dalt, podeu passar al següent pas.
Pas 3: crear una imatge
Per crear la vostra imatge, executeu l'ordre següent:
docker build -t name/application .
Això crearà una imatge amb un nom de repositori de name/application
. Si no hi ha errors, podeu passar al pas següent.
Pas 4: implementeu i proveu l'aplicació
Ara que tot està configurat, podeu executar la vostra imatge executant el següent:
docker run -p 49160:8080 -d name/application
Per provar la vostra aplicació, executeu l'ordre següent des de l'amfitrió:
curl http://172.17.42.1:49160/
Si ho veieu Hello from Docker
, heu implementat correctament la vostra imatge de Docker. Si voleu provar això amb el vostre navegador, visiteu http://[SERVER_IP]:49160
des del vostre navegador (substituïu l'adreça IP en conseqüència) i veureu el mateix missatge.