Skip to main content

Docker Installation and Management

 # Step 1: Uninstall older versions of Docker if they exist

sudo dnf remove docker \

                docker-client \

                docker-client-latest \

                docker-common \

                docker-latest \

                docker-latest-logrotate \

                docker-logrotate \

                docker-engine


# Step 2: Add Docker's official repository

sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo


# Step 3: Install Docker Engine

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


# Step 4: Start and enable Docker service

sudo systemctl start docker

sudo systemctl enable docker


# Step 5: Verify that Docker is installed and running

sudo systemctl status docker


# Check Docker version

docker --version


# Step 6: Run a test container to confirm installation

sudo docker run hello-world


# Step 7: (Optional) Allow non-root user to run Docker commands

sudo usermod -aG docker $USER

newgrp docker


# Step 8: Enable Docker to start on boot

sudo systemctl enable docker.service

sudo systemctl enable containerd.service

Project Deployment
This is project is docker based deployment consist of following services.
1) MongoDB
2) Mongo Express (GUI)
It is admin interface to connect, manage MongoDB.
3) Express JS (Api's)

1) Download Mongo Image.
Download mongo image using docker hub command. This command will download image and run it as a container.

Command
--docker run -d \
  -p 27017:27017 \
  --name mongo \
  --network mongo-network \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=qwerty \
  mongo

Note: Port binding is very important. mongoDB is running inside container and you nodejs app is also running inside the container using same network than set url "mongo" to node app server file .
const MONGO_URL = "mongodb://admin:qwerty@mongo:27017";
When the node js app is host directly using pm2/or in ither network container than set url to "localhost" in node js app server file.
const MONGO_URL = "mongodb://admin:qwerty@localhost:27017";
This port   -p 27017:27017 \ binding is very import if you node app is host in other network container/ host directly via pm2
Note: Not required in within same docker network.

2) Download Mongo Express Images.
Download mongo-express image using docker hub command. This command will download image and run it as a container.
docker run -d \
  --name mongo-express \
  --network mongo-network \
  -p 8081:8081 \
  -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin \
  -e ME_CONFIG_MONGODB_ADMINPASSWORD=qwerty \
  -e ME_CONFIG_MONGODB_URL="mongodb://admin:qwerty@mongo:27017/admin" \
  mongo-express


Note: The port binding with Host is very important while running mongo-express container.
Other wise you can access with your public host your mongo DB. 

Now access your mongo-express using the url
http://<your-server-ip>:8081

Host your Nodejs App
Step 1
Open port 3003
firewall-cmd --permanent --add-port 3003/tcp
firewall-cmd --reload

Step 2 Upload project on server
We have an example nodejs app. we will clone it from the git repository.
git clone https://github.com/shradha-khapra/docker-testapp.git

Step 3 Edit server.js file
Change or update the port to 3003

Step 4 Run the Application using pm2 service manager
pm2 start npm --name "docker_test_backend_app" -- run start







Comments

Popular posts from this blog

Install MariaDB Latest Version 11.4 in Red Hat Version 9

 This this post i will show you step by step the installation process of mariaDB in red hat version 9. Step1 Run the command to pull the latest updated packages on applications installed in your system. -dnf update If you get Kernal update than reboot the system -reboot Step2 Go to official mariaDB site Make mariadb repository in /etc/yum.repos.d Place the configuration in this file # MariaDB 11.4 RedHatEnterpriseLinux repository list - created 2024-09-24 11:12 UTC # https://mariadb.org/download/ [mariadb] name = MariaDB # rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. # baseurl = https://rpm.mariadb.org/11.4/rhel/$releasever/$basearch baseurl = https://mirrors.aliyun.com/mariadb/yum/11.4/rhel/$releasever/$basearch # gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1 Now install the mariaDB with its dependencies package...

Car Company website Proposal Document.

 Car Company Website Proposal Document. What this website offers and give value to company and its customers. This site will showcase the products (vehicles) with simple and sleek design. It will show high impact vehicles images. The specification of vehicle which user can easily understand and make comparisons.  Features of this website both Front-End and Back-End side. Front-End Features 1. Landing page of website 1.1 This page will display classy look of the web design by showcasing different vehicle high resolution images. 1.2 Overview of all Services the company offering to their valuable customers 1.3 Testimonials Client feedback on your services and satisfaction with vehicle which build long term value to company and customer relationship. 1.4 Window Pop-up for showing  sales and events or any news. 2. Pages on this website 2.1 Services Page This page will demonstrate number of Maintenance Services of vehicles this company offers. Now there are two types of service...

React js Commands

Navigation   1. Install React Router Dom npm install react-router-dom npm install react-router-dom@6