<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sumit Jha</title>
    <description>The latest articles on DEV Community by Sumit Jha (@sumit-jha).</description>
    <link>https://dev.to/sumit-jha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3558661%2Fad498c92-e8c3-4143-8fe1-96babf3757f3.png</url>
      <title>DEV Community: Sumit Jha</title>
      <link>https://dev.to/sumit-jha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sumit-jha"/>
    <language>en</language>
    <item>
      <title>How to Install Jenkins on an Ubuntu EC2 Instance</title>
      <dc:creator>Sumit Jha</dc:creator>
      <pubDate>Sun, 06 Sep 2026 08:00:21 +0000</pubDate>
      <link>https://dev.to/sumit-jha/how-to-install-jenkins-on-an-ubuntu-ec2-instance-16em</link>
      <guid>https://dev.to/sumit-jha/how-to-install-jenkins-on-an-ubuntu-ec2-instance-16em</guid>
      <description>&lt;p&gt;Learn how to install Jenkins on an Ubuntu EC2 instance step by step, configure Java, start the Jenkins service, open the required port, and access Jenkins from your browser.&lt;/p&gt;

&lt;p&gt;Jenkins is one of the most widely used automation tools in the DevOps ecosystem.&lt;/p&gt;

&lt;p&gt;It can help automate important software delivery tasks such as:&lt;/p&gt;

&lt;p&gt;Build → Test → Package → Deploy&lt;/p&gt;

&lt;p&gt;In this guide, we'll walk through how to install Jenkins on an Ubuntu EC2 instance on AWS and access the Jenkins dashboard for the first time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Jenkins?
&lt;/h2&gt;

&lt;p&gt;Jenkins is an open-source automation server used to automate parts of the software development and delivery process.&lt;/p&gt;

&lt;p&gt;A typical DevOps workflow can look like:&lt;/p&gt;

&lt;p&gt;Developer&lt;br&gt;
    ↓&lt;br&gt;
GitHub&lt;br&gt;
    ↓&lt;br&gt;
Jenkins&lt;br&gt;
    ↓&lt;br&gt;
Build&lt;br&gt;
    ↓&lt;br&gt;
Test&lt;br&gt;
    ↓&lt;br&gt;
Docker&lt;br&gt;
    ↓&lt;br&gt;
Deploy&lt;br&gt;
    ↓&lt;br&gt;
Application&lt;/p&gt;

&lt;p&gt;Instead of performing these tasks manually every time, Jenkins can automate them through jobs and pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Install Jenkins on AWS EC2?
&lt;/h2&gt;

&lt;p&gt;AWS EC2 provides a virtual server where you can install and run Jenkins.&lt;/p&gt;

&lt;p&gt;For someone learning DevOps, this is a useful hands-on setup because you get to work with:&lt;/p&gt;

&lt;p&gt;AWS EC2&lt;br&gt;
Ubuntu Linux&lt;br&gt;
SSH&lt;br&gt;
Java&lt;br&gt;
Jenkins&lt;br&gt;
Security Groups&lt;br&gt;
Jenkins web interface&lt;/p&gt;

&lt;p&gt;This gives you practical experience rather than only learning Jenkins through theory.&lt;/p&gt;

&lt;p&gt;What You Need Before Installing Jenkins&lt;/p&gt;

&lt;p&gt;Before starting, you should have:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS Account&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You need an AWS account to create an EC2 instance.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ubuntu EC2 Instance&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Launch an Ubuntu-based EC2 instance.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SSH Access&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You should be able to connect to your EC2 instance using SSH.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh -i your-key.pem ubuntu@your-ec2-public-ip&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Required Network Access&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your EC2 Security Group needs to allow:&lt;/p&gt;

&lt;p&gt;SSH   → Port 22&lt;br&gt;
Jenkins → Port 8080&lt;/p&gt;

&lt;p&gt;Port 22 is used for SSH access, while Jenkins commonly uses port 8080 for its web interface unless you configure it differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Launch an Ubuntu EC2 Instance&lt;/strong&gt;&lt;br&gt;
Go to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AWS Console → EC2 → Launch Instance&lt;br&gt;
Choose an Ubuntu Server image and configure the instance according to your learning requirements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a learning environment, you don't need a large production server.&lt;/p&gt;

&lt;p&gt;Once the instance is running, note down its:&lt;/p&gt;

&lt;p&gt;Public IPv4 address&lt;/p&gt;

&lt;p&gt;You'll use it later to connect to Jenkins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Connect to the EC2 Instance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use SSH to connect to your Ubuntu server.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh -i your-key.pem ubuntu@YOUR_PUBLIC_IP&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once connected, you'll see the Ubuntu terminal.&lt;/p&gt;

&lt;p&gt;Now you're ready to install Jenkins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Update the Ubuntu Packages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before installing anything, update the package information.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can also upgrade available packages when appropriate:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt upgrade&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;This ensures that your package information is up to date before continuing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Install Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jenkins runs on Java, so Java needs to be installed before Jenkins.&lt;/p&gt;

&lt;p&gt;A commonly used option for Jenkins installations is OpenJDK.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install openjdk-17-jdk -y&lt;/code&gt; &lt;br&gt;
After installation, verify Java:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java -version&lt;/code&gt;&lt;br&gt;
You should see the installed Java version in the terminal.&lt;/p&gt;

&lt;p&gt;Why do we need Java?&lt;/p&gt;

&lt;p&gt;Jenkins itself runs as a Java application, so Java is a prerequisite for running Jenkins.&lt;/p&gt;

&lt;p&gt;Check The Video - &lt;strong&gt;&lt;a href="https://youtu.be/JllYogu_Hzk" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Add the Jenkins Repository&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next step is to configure the Jenkins package repository so Ubuntu can install Jenkins from the Jenkins project packages.&lt;/p&gt;

&lt;p&gt;A typical installation involves importing the Jenkins signing key and configuring its package repository.&lt;/p&gt;

&lt;p&gt;Then update the package information again:&lt;/p&gt;

&lt;h2&gt;
  
  
  sudo apt update
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Install Jenkins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the repository is configured, install Jenkins:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install jenkins -y&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Ubuntu will download and install Jenkins along with the required package files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Start Jenkins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After installation, start the Jenkins service:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl start jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Now check whether Jenkins is running:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl status jenkins&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should see that the service is running.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Active: active (running)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Enable Jenkins at Boot&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You normally want Jenkins to start automatically whenever the EC2 instance restarts.&lt;/p&gt;

&lt;p&gt;Use:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo systemctl enable jenkins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This ensures Jenkins starts automatically during system boot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Configure the AWS Security Group&lt;/strong&gt;&lt;br&gt;
This is a step many beginners miss.&lt;/p&gt;

&lt;p&gt;Even if Jenkins is running correctly, you may not be able to access it from your browser if port 8080 is not allowed through the EC2 Security Group.&lt;/p&gt;

&lt;p&gt;Go to:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;AWS Console → EC2 → Security Groups → Inbound Rules&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Add a rule for:&lt;/p&gt;

&lt;p&gt;Type: Custom TCP&lt;br&gt;
Port: 8080&lt;/p&gt;

&lt;p&gt;For learning purposes, you may temporarily allow access from your IP address.&lt;/p&gt;

&lt;p&gt;Avoid unnecessarily exposing administration ports to the entire internet in production environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Open Jenkins in Your Browser&lt;/strong&gt;&lt;br&gt;
Once Jenkins is running and port 8080 is accessible, open:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://YOUR_EC2_PUBLIC_IP:8080&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://18.123.45.67:8080&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
You should now see the Jenkins setup page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11: Get the Jenkins Initial Admin Password&lt;/strong&gt;&lt;br&gt;
During the initial setup, Jenkins asks for an administrator password.&lt;/p&gt;

&lt;p&gt;You can retrieve it from the Jenkins server with:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo cat /var/lib/jenkins/secrets/initialAdminPassword&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Copy the password and paste it into the Jenkins setup screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 12: Complete Jenkins Setup&lt;/strong&gt;&lt;br&gt;
Jenkins will then guide you through the initial setup.&lt;/p&gt;

&lt;p&gt;You'll typically be given the option to install recommended plugins.&lt;/p&gt;

&lt;p&gt;For a beginner, the recommended plugins are a good starting point.&lt;/p&gt;

&lt;p&gt;Then create your Jenkins administrator account.&lt;/p&gt;

&lt;p&gt;Once complete, you'll reach the:&lt;/p&gt;

&lt;p&gt;Jenkins Dashboard&lt;/p&gt;

&lt;p&gt;🎉 Your Jenkins installation is ready.&lt;/p&gt;

&lt;p&gt;Jenkins Installation Flow&lt;/p&gt;

&lt;p&gt;The entire process can be remembered like this:&lt;/p&gt;

&lt;p&gt;AWS EC2&lt;br&gt;
   ↓&lt;br&gt;
Ubuntu&lt;br&gt;
   ↓&lt;br&gt;
SSH&lt;br&gt;
   ↓&lt;br&gt;
Install Java&lt;br&gt;
   ↓&lt;br&gt;
Add Jenkins Repository&lt;br&gt;
   ↓&lt;br&gt;
Install Jenkins&lt;br&gt;
   ↓&lt;br&gt;
Start Jenkins&lt;br&gt;
   ↓&lt;br&gt;
Open Port 8080&lt;br&gt;
   ↓&lt;br&gt;
Access Jenkins&lt;br&gt;
   ↓&lt;br&gt;
Get Initial Password&lt;br&gt;
   ↓&lt;br&gt;
Jenkins Dashboard&lt;/p&gt;

&lt;p&gt;_How to Check Jenkins Status&lt;br&gt;
_&lt;br&gt;
Whenever you want to check whether Jenkins is running:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl status jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
To start Jenkins:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl start jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
To stop Jenkins:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl stop jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
To restart Jenkins:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl restart jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
To enable Jenkins at boot:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl enable jenkins&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Problems When Installing Jenkins on EC2
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Jenkins page doesn't open&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check whether Jenkins is running:&lt;/p&gt;

&lt;p&gt;sudo systemctl status jenkins&lt;/p&gt;

&lt;p&gt;Then check your EC2 Security Group and make sure port 8080 is allowed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SSH connection doesn't work&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check:&lt;/p&gt;

&lt;p&gt;EC2 instance is running&lt;br&gt;
Correct public IP&lt;br&gt;
Correct .pem key&lt;br&gt;
Port 22 is allowed&lt;br&gt;
Correct username is being used&lt;/p&gt;

&lt;p&gt;For Ubuntu EC2 instances, the username is commonly:&lt;/p&gt;

&lt;p&gt;ubuntu&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Jenkins service fails to start&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check the Jenkins service:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl status jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Then inspect the logs:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo journalctl -u jenkins&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
You can use these logs to identify configuration or dependency problems.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Java-related error&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check your Java installation:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java -version&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Jenkins requires a supported Java runtime, so an incompatible or missing Java version can prevent Jenkins from starting.&lt;/p&gt;

&lt;p&gt;What Should You Do After Installing Jenkins?&lt;/p&gt;

&lt;p&gt;Installing Jenkins is only the beginning.&lt;/p&gt;

&lt;p&gt;The next step is to create your first Jenkins job or Pipeline.&lt;/p&gt;

&lt;p&gt;A good beginner project is:&lt;/p&gt;

&lt;p&gt;GitHub&lt;br&gt;
   ↓&lt;br&gt;
Jenkins&lt;br&gt;
   ↓&lt;br&gt;
Build&lt;br&gt;
   ↓&lt;br&gt;
Test&lt;br&gt;
   ↓&lt;br&gt;
Docker&lt;br&gt;
   ↓&lt;br&gt;
AWS EC2&lt;br&gt;
   ↓&lt;br&gt;
Application&lt;/p&gt;

&lt;p&gt;You can then gradually learn:&lt;/p&gt;

&lt;p&gt;Jobs → Builds → Pipelines → Jenkinsfile → GitHub Webhooks → Docker → Deployment&lt;/p&gt;

&lt;p&gt;This is where Jenkins becomes really useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Should DevOps Engineers Learn Jenkins?
&lt;/h2&gt;

&lt;p&gt;Jenkins teaches you an important DevOps concept:&lt;/p&gt;

&lt;p&gt;Automation of software delivery.&lt;/p&gt;

&lt;p&gt;Instead of manually performing the same build, test and deployment steps repeatedly, you can turn those steps into an automated workflow.&lt;/p&gt;

&lt;p&gt;That's why Jenkins is commonly associated with CI/CD.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Installing Jenkins on an Ubuntu EC2 instance may seem difficult the first time.&lt;/p&gt;

&lt;p&gt;But once you understand the flow, it becomes straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;EC2 → Ubuntu → Java → Jenkins → Port 8080 → Jenkins Dashboard&lt;br&gt;
And the most important part isn't just getting Jenkins installed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The real learning starts when you build your first pipeline, connect GitHub, introduce Docker, encounter a failed build, read the logs, troubleshoot it, and finally get:&lt;/p&gt;

&lt;p&gt;BUILD SUCCESSFUL ✅&lt;/p&gt;

&lt;p&gt;That's where DevOps starts becoming practical.&lt;/p&gt;

&lt;p&gt;Learn one tool. Build one project. Break it. Fix it. Repeat. 🚀&lt;/p&gt;

</description>
      <category>docker</category>
      <category>linux</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Deploying Your First Web App</title>
      <dc:creator>Sumit Jha</dc:creator>
      <pubDate>Sun, 06 Sep 2026 07:39:47 +0000</pubDate>
      <link>https://dev.to/sumit-jha/deploying-your-first-web-app-jim</link>
      <guid>https://dev.to/sumit-jha/deploying-your-first-web-app-jim</guid>
      <description>&lt;p&gt;Launching your app in a Dockerized way is the first step towards becoming a DevOps Engineer.&lt;/p&gt;

&lt;p&gt;This step might look simple, but you could face issues with that. As a DevOps engineer, our main goal is to rectify the issues and make our app live for the world.&lt;/p&gt;

&lt;p&gt;In this article, I will provide you with step-by-step guide on hosting your simple app in a dockerized way. We will also rectify all the issues that you might counter into.&lt;/p&gt;

&lt;p&gt;Deploying Your App In AWS&lt;/p&gt;

&lt;p&gt;Deploying your app is an 3 step formula:-&lt;/p&gt;

&lt;p&gt;You have your app. Then do the following things:-&lt;/p&gt;

&lt;p&gt;Write Docker File&lt;/p&gt;

&lt;p&gt;Create Image From Docker File&lt;/p&gt;

&lt;p&gt;Containers&lt;/p&gt;

&lt;p&gt;Deploy your app. This look very simple.&lt;/p&gt;

&lt;p&gt;However, let's see the process&lt;/p&gt;

&lt;p&gt;Installing Docker In Your Linux System&lt;/p&gt;

&lt;p&gt;First of all, we have to install Docker in our local system. Here is the step to install Docker in the system:-&lt;/p&gt;

&lt;p&gt;Update The System&lt;/p&gt;

&lt;p&gt;sudo apt update&lt;/p&gt;

&lt;p&gt;Install Docker&lt;/p&gt;

&lt;p&gt;sudo apt install -y docker.io&lt;/p&gt;

&lt;p&gt;Verify if Docker is installed or not&lt;/p&gt;

&lt;p&gt;sudo systemctl status docker&lt;/p&gt;

&lt;p&gt;In most of the cases, Docker should install. However, this issue might come up.&lt;/p&gt;

&lt;p&gt;Let's remove the error.&lt;/p&gt;

&lt;p&gt;docker buildx version&lt;/p&gt;

&lt;p&gt;We will see something like &lt;/p&gt;

&lt;p&gt;github.com/docker/buildx v0.x.x&lt;/p&gt;

&lt;p&gt;This means the system has been resolved.&lt;/p&gt;

&lt;p&gt;Verify by running the command&lt;/p&gt;

&lt;p&gt;sudo systemctl status docker&lt;/p&gt;

&lt;p&gt;This should look like this:-&lt;/p&gt;

&lt;p&gt;If we can see&lt;/p&gt;

&lt;p&gt;Active: active(running)&lt;/p&gt;

&lt;p&gt;Then this is active. This means our Docker is up and running.&lt;/p&gt;

&lt;p&gt;However I would make 1 small change.&lt;/p&gt;

&lt;p&gt;Whenever I start the system, Docker should start automatically.&lt;/p&gt;

&lt;p&gt;sudo systemctl enable docker&lt;/p&gt;

&lt;p&gt;Adding User To Docker Group&lt;/p&gt;

&lt;p&gt;Run:&lt;/p&gt;

&lt;p&gt;sudo usermod -aG docker $USER&lt;/p&gt;

&lt;p&gt;Then refresh the session:&lt;/p&gt;

&lt;p&gt;newgrp docker&lt;/p&gt;

&lt;p&gt;Writing a Simple Docker File&lt;/p&gt;

&lt;p&gt;This is the most important step. If done properly, you will be head of many DevOps engineers.&lt;/p&gt;

&lt;p&gt;Here is the file that I am hosting - Check Here&lt;/p&gt;

&lt;p&gt;Build The Docker File&lt;/p&gt;

&lt;p&gt;docker build -t motivationalquotes .&lt;/p&gt;

&lt;p&gt;motivationalquotes - This is my app name&lt;/p&gt;

&lt;p&gt;Check if the image is created&lt;/p&gt;

&lt;p&gt;docker images&lt;/p&gt;

&lt;p&gt;Running An Images&lt;/p&gt;

&lt;p&gt;docker run -d --name quotes.app -p 8000:8000 motivational-quotes&lt;/p&gt;

&lt;p&gt;It will give an id&lt;/p&gt;

&lt;p&gt;Check all the running Docker containers&lt;/p&gt;

&lt;p&gt;docker ps&lt;/p&gt;

</description>
      <category>docker</category>
      <category>linux</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Mistakes to Avoid While Mounting AWS EBS Volume on Ubuntu EC2 Linux Instance</title>
      <dc:creator>Sumit Jha</dc:creator>
      <pubDate>Sun, 08 Feb 2026 17:26:07 +0000</pubDate>
      <link>https://dev.to/sumit-jha/mistakes-to-avoid-while-mounting-aws-ebs-volume-on-ubuntu-ec2-linux-instance-56ge</link>
      <guid>https://dev.to/sumit-jha/mistakes-to-avoid-while-mounting-aws-ebs-volume-on-ubuntu-ec2-linux-instance-56ge</guid>
      <description>&lt;p&gt;Yes, I was doing the simple and basic EBS Volume creation and mounting it. But I got stuck in the 1st point itself.&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;p&gt;Checking the availability zone.&lt;/p&gt;

&lt;p&gt;Yes, this simple mistake will take you hours to debug. So, let’s start from the basics of creating volume and mounting it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Create EBS Volume In AWS?
&lt;/h2&gt;

&lt;p&gt;Step 1 - Start Your Instance in which you want to add a volume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8z36plrtkhygm7583h9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8z36plrtkhygm7583h9w.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to EC2 Dashboard » Select the instance » Action » Start » Click Volumes under Elastic Block Store &lt;/p&gt;

&lt;p&gt;You will be redirected to the Volumes Section.&lt;/p&gt;

&lt;p&gt;Step 2  - Creating EBS Volumes&lt;/p&gt;

&lt;p&gt;This is the very simple yet most confusing part.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Few3utrlvhnga4rjjje64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Few3utrlvhnga4rjjje64.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then you will be directed to a page where we can create the volumes.&lt;/p&gt;

&lt;p&gt;And there is the most common mistake I made while creating the EBS Volumes, which we will see.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuskjm4ef9mlys6o6rtcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuskjm4ef9mlys6o6rtcb.png" alt=" " width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Select the size of the disk that you want to add&lt;/li&gt;
&lt;li&gt;Select the availability zone.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rest of the things you can keep as the default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Mistake that I Made While Selecting an Availability Zone&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Selecting the wrong Availability Zone.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, the mistake looks small, but it will totally ruin your time.&lt;/p&gt;

&lt;p&gt;I know that I have to select an Availability zone that matches my instances. So I checked the availability zone as per the screenshot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn6aemwh996ckmyqpk9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn6aemwh996ckmyqpk9m.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, I checked at 1 and thought any of &lt;strong&gt;us-east-1&lt;/strong&gt; zone. But there are mutliple option to choose from. But I selected the default one., i.e., us-east-1a. and proceed with creating the volumes.&lt;/p&gt;

&lt;p&gt;However on going forward, when it comes to attaching the volumes to my instance, I couldn’t simply find my instances.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofy535xgzvu40fzziljj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofy535xgzvu40fzziljj.png" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On checking, everything seems fine, however, it is not working.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Find Out the Correct “Availability Zone”
&lt;/h2&gt;

&lt;p&gt;This is a very simple and important set.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqsepk6pw1w6uklddnnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqsepk6pw1w6uklddnnb.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go back instances.&lt;/li&gt;
&lt;li&gt;Select Your Instance&lt;/li&gt;
&lt;li&gt;Click On Networking&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check Availability Zone&lt;/p&gt;

&lt;p&gt;Now you have your correct “Availability Zone“, you can create Volumes once again with the correct Availability Zone.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Summing Up
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;Creating an Volume without correct availability zone will not work. You have to find correct zone before you can proceed for next step.&lt;/p&gt;

&lt;p&gt;I hope you have enjoyed my article and will implement this into your project.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>From Funnels to Pipelines: Why I’m Trading Digital Marketing for DevOps</title>
      <dc:creator>Sumit Jha</dc:creator>
      <pubDate>Sat, 17 Jan 2026 20:02:40 +0000</pubDate>
      <link>https://dev.to/sumit-jha/from-funnels-to-pipelines-why-im-trading-digital-marketing-for-devops-3e08</link>
      <guid>https://dev.to/sumit-jha/from-funnels-to-pipelines-why-im-trading-digital-marketing-for-devops-3e08</guid>
      <description>&lt;p&gt;After 5+ years in Digital Marketing, I’ve decided to make a major pivot. I’m shifting my career focus toward DevOps.&lt;/p&gt;

&lt;p&gt;To my marketing colleagues, this might sound like I’m moving to a different planet. To my future tech colleagues, it might look like I’m a "non-tech" outsider. But here is the truth: Marketing and DevOps are built on the same DNA.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Shift?
&lt;/h2&gt;

&lt;p&gt;In Marketing, I obsessed over Automation. I spent my days building email funnels and lead workflows to make sure no user was dropped. In DevOps, that same "workflow" mindset applies—only instead of moving leads through a funnel, I’m moving code through a pipeline.&lt;/p&gt;

&lt;p&gt;I’m moving to DevOps because I want to build the systems that make the products, rather than just selling them. The "Technical Debt" we feel in marketing operations—broken APIs, slow landing pages, and siloed data—is exactly what DevOps is designed to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  My 6-Month Roadmap (2026 Edition)
&lt;/h2&gt;

&lt;p&gt;I don’t believe in "overnight" success. I’ve laid out a rigorous 4–6 month plan to become job-ready while balancing my current role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 1&lt;/strong&gt;: The Foundation (Linux &amp;amp; Networking)&lt;br&gt;
Goal: Move away from the GUI. I’m spending my first month in the terminal (Ubuntu).&lt;/p&gt;

&lt;p&gt;Key Skills: Bash scripting, SSH, DNS, and the OSI model. If you can’t navigate a server, you can't automate it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 2&lt;/strong&gt;: The "Version Control" Phase (Git &amp;amp; Python)&lt;br&gt;
Goal: Treat "Infrastructure as Code."&lt;/p&gt;

&lt;p&gt;Key Skills: Mastering Git workflows. I’m also picking up Python to automate the repetitive tasks that used to take me hours in marketing spreadsheets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 3&lt;/strong&gt;: Containerization (Docker)&lt;br&gt;
Goal: "It works on my machine" should never be an excuse.&lt;/p&gt;

&lt;p&gt;Key Skills: Learning to package applications into Docker containers so they run anywhere—from my laptop to the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 4-5&lt;/strong&gt;: Cloud &amp;amp; Orchestration (AWS &amp;amp; Kubernetes)&lt;br&gt;
Goal: Scaling for millions.&lt;/p&gt;

&lt;p&gt;Key Skills: I’ll be focusing on AWS (specifically EC2, S3, and IAM) and learning how Kubernetes manages container clusters at scale. This is the "Big Leagues" of DevOps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 6&lt;/strong&gt;: The "Project" Phase &amp;amp; Career Bridging&lt;br&gt;
Goal: Build a portfolio that speaks both languages.&lt;/p&gt;

&lt;p&gt;Outcome: I plan to build a "Full-Stack Observability" project, showing how system performance directly impacts Marketing Conversion Rates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Transitioning isn't about throwing away my marketing experience; it's about upgrading the toolkit. I’m still focused on the "Customer Journey," but now I’m ensuring that journey happens on a fast, secure, and unbreakable infrastructure.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
