Step by step tutorial, How to dockerize a nodejs istance
chinaski@chinaski-XPS-15-9550:~$ cd Desktop/ chinaski@chinaski-XPS-15-9550:~/Desktop$ mkdir DockerizeNodeJS chinaski@chinaski-XPS-15-9550:~/Desktop$ cd DockerizeNodeJS/ chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ sudo npm init name: (DockerizeNodeJS) dockerizenodejs version: (1.0.0) description: Step by step tutorial - How to dockerize NodeJS applications entry point: (index.js) test command: git repository: keywords: docker,nodejs,dockerize author: AndreaBorio license: (ISC) GPL Sorry, license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN <filename>" and license is similar to the valid expression "GPL-3.0". license: (ISC) About to write to /home/chinaski/Desktop/DockerizeNodeJS/package.json: { "name": "dockerizenodejs", "version": "1.0.0", "description": "Step by step tutorial - How to dockerize NodeJS applications", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "docker", "nodejs", "dockerize" ], "author": "AndreaBorio", "license": "ISC" }
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ npm install express --save
Package.json
{ "name": "dockerizenodejs", "version": "1.0.0", "description": "Step by step tutorial - How to dockerize NodeJS applications", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "docker", "nodejs", "dockerize" ], "author": "AndreaBorio", "license": "ISC", "dependencies": { "express": "^4.16.3" } }
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ touch index.js
index.js
var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hey folks!') }) app.listen(8000, function () { console.log('server listening on port 8000!') })
Run your server
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ node index.js server listening on port 8000!
.Dockerfile
FROM node:7 WORKDIR /app COPY package.json /app RUN npm install COPY . /app CMD node index.js EXPOSE 8000
Building image
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ sudo docker build -t dockerizenodejs .
Push the image to Docker Hub
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ docker push andreaborio/dockerizenodejs The push refers to repository [docker.io/andreaborio/dockerizenodejs]
Now test image
chinaski@chinaski-XPS-15-9550:~/Desktop/DockerizeNodeJS$ docker run andreaborio/dockerizenodejs server listening on port 8000!
It works!