1 veiksmas: sukurkite savo „Node“ programą
2 veiksmas: sukurkite „Dockerfile“.
3 veiksmas: sukurkite vaizdą
4 veiksmas: įdiekite ir išbandykite programą
Šiame straipsnyje bus parodyta, kaip įdiegti „Node“ programą „Docker“ konteineryje.
Pastaba: Šioje pamokoje daroma prielaida, kad „Docker“ yra įdiegtas ir paruoštas naudoti.
1 veiksmas: sukurkite savo „Node“ programą
Sukurkite katalogą pavadinimu src
. Mes naudosime tą katalogą. Sukurkite failą pavadinimu, src/package.json
kuriame yra ši informacija:
{
"name": "hello_world",
"private": true,
"version": "0.0.1",
"description": "Hello world Example",
"author": "",
"dependencies": {
"express": "3.2.4"
}
}
Dabar sukurkite failą, src/index.js
kuriame yra ši informacija:
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');
Žinokite, kad galite pakeisti prievadą 8080
į bet ką, bet šiame pavyzdyje mes parodysime, kad šis prievadas bus naudojamas mūsų programai. Sukūrę šiuos du failus, galite pereiti prie kito veiksmo.
2 veiksmas: sukurkite „Dockerfile“.
„Dockerfile“ leidžia kurti ir įdiegti „Docker“ vaizdus pagal jame pateiktas instrukcijas. Sukurkite failą pavadinimu Dockerfile
ir užpildykite jį tokiu turiniu:
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"]
Paaiškinimas:
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.
Sukūrę failą tiksliai taip, kaip parodyta aukščiau, galite pereiti prie kito veiksmo.
3 veiksmas: sukurkite vaizdą
Norėdami sukurti vaizdą, paleiskite šią komandą:
docker build -t name/application .
Taip bus sukurtas vaizdas su saugyklos pavadinimu name/application
. Jei klaidų nėra, galite pereiti prie kito veiksmo.
4 veiksmas: įdiekite ir išbandykite programą
Dabar, kai viskas nustatyta, galite paleisti vaizdą atlikdami šiuos veiksmus:
docker run -p 49160:8080 -d name/application
Norėdami išbandyti programą, paleiskite šią komandą iš pagrindinio kompiuterio:
curl http://172.17.42.1:49160/
Jei matote Hello from Docker
, sėkmingai įdiegėte „Docker“ vaizdą. Jei norite tai išbandyti savo naršyklėje, apsilankykite http://[SERVER_IP]:49160
iš savo naršyklės (atitinkamai pakeiskite IP adresą) ir pamatysite tą patį pranešimą.