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!