building a micro-service using node.js and docker - part #1
TRANSCRIPT
![Page 1: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/1.jpg)
Containers #101Building a micro-service using Node.js & Docker July 15
Recording available at:https://vimeo.com/133709066
![Page 2: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/2.jpg)
About the meetup • A series of 30 min webinars + 10 min
Q&A• Hands On• Session are recorded• Suggested topics and presenters are
welcome
![Page 3: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/3.jpg)
About me • Developer, entrepreneur and
technology enthusiast• Live in the Silicon Valley since
2008 • Founder and CEO of Codefresh• Member of the Node.js foundation
@RazielTabib
![Page 4: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/4.jpg)
About codefresh • A Docker platform for development
teams.• Build, Run & Test Docker containers• Launch any PR, Commit or Branch in
seconds
@codefresh
![Page 5: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/5.jpg)
What we will see today• Create a base Docker image
ubuntu
Node.jsbase image
![Page 6: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/6.jpg)
What we will see today• Create a base Docker image• Build a simple micro-service
ubuntu
Node.jsbase image
micro-service
![Page 7: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/7.jpg)
What we will see today• Create a base Docker image• Build a simple micro-service• Run our micro-service inside a container
ubuntu
Node.jsbase image
micro-service
![Page 8: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/8.jpg)
What we will see today• Create a base Docker image• Build a simple micro-service• Run our micro-service inside a container• Create a Docker image from an existing
container
ubuntu
Node.jsbase image
micro-service
micro-service image
![Page 9: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/9.jpg)
What we will see today• Create a base Docker image• Build a simple micro-service• Run our micro-service inside a container• Create a Docker image from an existing
container• Publish our image in Docker hub
ubuntu
Node.jsbase image
micro-service
micro-service image
![Page 10: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/10.jpg)
TerminologyDocker ImagesBlueprints of our applicationDocker ContainerCreated from docker images and are real instances of our applicationDocker DaemonBuilding, running and distributing Docker containersDocker ClientRun on our local machine and connect to the daemonDocker HubA registry of docker images
https://www.airpair.com/node.js/posts/getting-started-with-docker-for-the-nodejs-dev
![Page 11: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/11.jpg)
Create a base image• Check boot2docker version & status
11
Raziels-Air:~ RazielMac$ boot2docker version
• search, pull & run ubuntu imageRaziels-Air:~ RazielMac$ boot2docker status
Raziels-Air:~ RazielMac$ docker search ubuntuRaziels-Air:~ RazielMac$ docker run -it ubuntu ./bin/bash
• Install nodeRaziels-Air:~ apt-get updateRaziels-Air:~ apt-get install nodejsRaziels-Air:~ apt-get install nodejs-legacy
ubuntu
Node.jsbase image
Raziels-Air:~ apt-get install npm
• Create a Docker imageRaziels-Air:~ docker commit –a “razielt” CONTAINER-ID IMAGE-NAME:tag
![Page 12: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/12.jpg)
Build a simple micro-service• Create a skeleton using express generator
12
Raziels-Air:~ RazielMac$ npm install –g express-generator
• Add an api.js with simple get function Raziels-Air:~ RazielMac$ express microservice
• Run micro-service locallyRaziels-Air:~ npm installRaziels-Air:~ npm start
/* GET greeting. */router.get('/sayhello', function(req, res) { res.send('Hello meetup members');});
micro-service
![Page 13: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/13.jpg)
Run inside a container• Get our local directory path
13
Raziels-Air:~ pwd
• Run a container with volume mounting and port mapping
• Copy micro-service to containerRaziels-Air:~ cp –r host /microserviceRaziels-Air:~ cd microservice
ubuntu
Node.js
micro-service
base image
Raziels-Air:~ RazielMac$ docker run –it –v HOSTFOLDER:CONTAINERFOLDER –p HOSTPORT:CONTAINERPORT IMAGENAME:TAG
Raziels-Air:~ npm start
![Page 14: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/14.jpg)
Create & run docker image• Create an image
14
Raziels-Air:~ docker commit CONTAINERID, IMAGENAME:TAG
• Run micro-service in the background
ubuntu
Node.js
micro-service
base image
Raziels-Air:~ RazielMac$ docker run –d –w /microservice –p 9000:3000 IMAGENAME npm start
micro-service image
![Page 15: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/15.jpg)
Push to Docker hub• Login
15
Raziels-Air:~ docker login
• Push out image
ubuntu
Node.js
micro-service
base image
Raziels-Air:~ RazielMac$ docker tag nodejs-microservice your_dockerhub_user/nodejs-microservice
micro-service image
Raziels-Air:~ RazielMac$ docker push your_dockerhub_user/nodejs-microservice
![Page 16: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/16.jpg)
What we did today• Create base Docker image• Build a simple micro-service• Run our micro-service inside a container• Create a Docker image from an existing
container• Publish our image in Docker hub
ubuntu
Node.jsbase image
micro-service
micro-service image
![Page 17: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/17.jpg)
additional resources• Codefresh blog blog.codefresh.io• Containers #101 meetup http://www.meetup.com/Containers-101-online-meetup/• Docker Online meetup (delivered by Docker) http://www.meetup.com/Docker-Online-Meetup/
@codefresh
![Page 18: Building a micro-service using Node.js and Docker - Part #1](https://reader036.vdocument.in/reader036/viewer/2022062904/5874300f1a28ab72188b7643/html5/thumbnails/18.jpg)
Questions?
@RazielTabib
Sign up to our beta @ www.codefresh.io
Recording available at:https://vimeo.com/133709066