Node JS server deployment on Ubuntu using Docker
Node JS is designed to build scalable network applications. Node does not employ any locks, hence, you need not worry about deadlocks. It does not use a common concurrency model where OS threads are employed. Thread-based networking is inefficient and difficult to use. As it does not use threads, it does not mean you can’t play with multicores, you can use child_process.fork API. It has a
In this tutorial, I will be using Virtual Private Server (VPS) with Ubuntu 16.04 installed on it. I will install and
- You must have a virtual private server (VPS). You can buy VPS here at the cheapest price.
- ECS must have at least 1GB RAM and 1 Core processor.
- Register your domain name. If you have already registered a domain, you can update its nameserver records.
Domainname must be pointed to your Alibaba Cloud ECS’s IP address.
- You should
setupyour server’s hostname.
- Access to your server via
- Login as root user and create
Update Ubuntu System:
Before proceeding with
# sudo apt update && sudo apt upgrade
Software-properties-common package is required to get the supported files for installation of Docker CE. In order to install software-properties-common package, follow the steps below.
To install software-properties-common execute the command.
# sudo apt-get install software-properties-common -y
Apt-transport-https is required for installation of Docker CE. In order to install apt-transport-https, follow the steps below.
To install apt-transport-https execute the command.
# sudo apt-get install apt-transport-https -y
Ca-certificates is required for installation of Docker CE. In order to install ca-certificates, follow the steps below.
To install ca-certificates execute the command.
# sudo apt-get install ca-certificates -y
Curl is required for installation of Docker CE. In order to install curl, follow the steps below.
To install curl execute the command.
# sudo apt-get install curl -y
Install Docker CE:
To install Docker community edition, follow the steps below.
Add GPG key for Docker by executing command below.
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Execute the following command to verify the fingerprint of GPG key.
# sudo apt-key fingerprint 0EBFCD88
Now add the Docker repository by executing the command below.
# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Now update your system by executing command below to load added repository.
# sudo apt update
Execute the following command to install Docker.
# sudo apt install docker-ce
Now add your username to docker group by executing command below.
# sudo adduser aareez docker
Close your current shell session and start a new session. Otherwise, you won’t be able to run docker and you may see permission errors.
Execute the following command to check either docker run correctly or not.
# docker run hello-world
Install Docker compose:
To download and install Docker compose, follow the steps below.
Execute the following command to download and install latest version of docker compose.
# sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Now set the permissions for file using the command below.
# sudo chmod +x /usr/local/bin/docker-compose
Get list of started containers using the following command.
# docker container ls --all
Stop container using port 8080. To do so, get container id, replace it with 8baab990c424 below and execute the command.
# docker stop 8baab990c424
Pull and run Node.js:
In this tutorial, I will use official image of Node.js for installation on Docker. To download and install Node.js, you will need to execute the following command which will pull latest Nodejs from official docker repository.
# docker pull linode/server-node-js
Now execute the following command to run docker image.
# docker run -d -p 80:3000 linode/server-node-js
Now you can verify it by accessing your Alibaba Cloud ECS IP address or domain name pointing to that IP address. http://your_domain.tld/test.htm
You will see the following page.
Setup firewalls for http, https and other required port:
You will need to open port 80 and 443. To do this, you may read the article on firewalls.
Congratulations!!…here you go…you have successfully installed Node.js for development purpose within Docker.
One Reply to “Node JS server deployment on Ubuntu using Docker”