<?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: Harikrishnan N</title>
    <description>The latest articles on DEV Community by Harikrishnan N (@syssyncer).</description>
    <link>https://dev.to/syssyncer</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1148328%2F2cc269e5-db11-48fa-89e8-d5de1e2cc4d3.png</url>
      <title>DEV Community: Harikrishnan N</title>
      <link>https://dev.to/syssyncer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syssyncer"/>
    <language>en</language>
    <item>
      <title>Docker Image creation and pushing to DockerHub (Step-by-Step!) 🐳</title>
      <dc:creator>Harikrishnan N</dc:creator>
      <pubDate>Mon, 28 Apr 2025 15:43:01 +0000</pubDate>
      <link>https://dev.to/syssyncer/docker-image-creation-and-pushing-to-dockerhub-step-by-step-cji</link>
      <guid>https://dev.to/syssyncer/docker-image-creation-and-pushing-to-dockerhub-step-by-step-cji</guid>
      <description>&lt;p&gt;Hey Devs! 👋&lt;br&gt;
In this post, let’s learn how to create your own Docker image and upload it to DockerHub like a pro! 🐳&lt;br&gt;
I’ll keep it super simple — plus, I’ll tell you where you can add screenshots to make the post even cooler!&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Step 1: Create Your Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 Start with a simple app/project.&lt;br&gt;
Example structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/my-app
 ├── app.py
 └── requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐳 Step 2: Create a Dockerfile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inside your project folder, create a file named Dockerfile (no extension).&lt;br&gt;
Example Dockerfile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Use an official Python image&lt;/span&gt;
FROM python:3.11-slim

&lt;span class="c"&gt;# Set working directory&lt;/span&gt;
WORKDIR /app

&lt;span class="c"&gt;# Copy app files&lt;/span&gt;
COPY &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
RUN pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Run the app&lt;/span&gt;
CMD &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"python"&lt;/span&gt;, &lt;span class="s2"&gt;"app.py"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏗️ Step 3: Build the Docker Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, let’s build your image! Run this in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; your_dockerhub_username/your-image-name:tag &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; SysSyncer/hello-world-py:latest &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🕵️‍♂️ Step 4: Verify Your Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check if your image is created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔐 Step 5: Login to DockerHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you haven’t already, login to your DockerHub account:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will ask for your username and password.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📤 Step 6: Push the Image to DockerHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now push your image to the cloud!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker push your_dockerhub_username/your-image-name:tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker push SysSyncer/hello-world-py:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎉 Step 7: Done! View Your Image on DockerHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go to &lt;a href="https://hub.docker.com/" rel="noopener noreferrer"&gt;https://hub.docker.com/&lt;/a&gt; and you’ll see your freshly pushed image under Repositories!&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📋 Full Command Summary&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build&lt;/span&gt;
docker build &lt;span class="nt"&gt;-t&lt;/span&gt; your_dockerhub_username/your-image-name:tag &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Check Image&lt;/span&gt;
docker images

&lt;span class="c"&gt;# Login&lt;/span&gt;
docker login

&lt;span class="c"&gt;# Push&lt;/span&gt;
docker push your_dockerhub_username/your-image-name:tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Bonus Tip: Tagging Latest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Want your users to always get the latest version?&lt;br&gt;
Add another tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker tag your_dockerhub_username/your-image-name:v1 your_dockerhub_username/your-image-name:latest
docker push your_dockerhub_username/your-image-name:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Wrapping Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that’s it, champ! 🏆&lt;br&gt;
You just built and published your first Docker image to DockerHub!&lt;br&gt;
Imagine millions of servers now being able to pull and run your image with just:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull your_dockerhub_username/your-image-name:tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pretty cool, right? 😎🐳&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>🚀 Level Up Your GitHub Game: Advanced Git Commands You Should Know!</title>
      <dc:creator>Harikrishnan N</dc:creator>
      <pubDate>Mon, 28 Apr 2025 15:21:14 +0000</pubDate>
      <link>https://dev.to/syssyncer/level-up-your-github-game-advanced-git-commands-you-should-know-1gao</link>
      <guid>https://dev.to/syssyncer/level-up-your-github-game-advanced-git-commands-you-should-know-1gao</guid>
      <description>&lt;p&gt;Hey devs! 👋&lt;br&gt;&lt;br&gt;
We all know the basics: &lt;code&gt;git clone&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt;...&lt;br&gt;&lt;br&gt;
But Git has &lt;em&gt;superpowers&lt;/em&gt; most people don't use! 💥&lt;br&gt;&lt;br&gt;
Let's dive into some advanced Git commands that'll seriously upgrade your workflow.  &lt;/p&gt;


&lt;h3&gt;
  
  
  1. &lt;code&gt;git cherry-pick &amp;lt;commit-hash&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Pick a single commit from one branch and apply it to another.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git cherry-pick abc1234
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ No need to merge the whole branch — just grab what you need!&lt;/p&gt;




&lt;h3&gt;
  
  
  2. &lt;code&gt;git stash save "message"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Pause your work and jump to another task without losing changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash save &lt;span class="s2"&gt;"WIP: fixing bug"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash pop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Instantly resume where you left off!&lt;/p&gt;




&lt;h3&gt;
  
  
  3. &lt;code&gt;git rebase -i HEAD~n&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: &lt;strong&gt;Interactive rebase&lt;/strong&gt; to clean up your messy commit history.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git rebase &lt;span class="nt"&gt;-i&lt;/span&gt; HEAD~5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be able to &lt;strong&gt;squash&lt;/strong&gt;, &lt;strong&gt;edit&lt;/strong&gt;, or &lt;strong&gt;delete&lt;/strong&gt; commits like a boss. 🧹&lt;/p&gt;




&lt;h3&gt;
  
  
  4. &lt;code&gt;git reflog&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Lost a commit? Deleted a branch?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reflog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Find the commit ID and bring it back. Git never forgets! 😉&lt;/p&gt;




&lt;h3&gt;
  
  
  5. &lt;code&gt;git reset --soft HEAD~1&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Undo the last commit, but &lt;strong&gt;keep your changes&lt;/strong&gt; in the staging area.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--soft&lt;/span&gt; HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Great when you realize, "Oops, wrong commit message!"&lt;/p&gt;




&lt;h3&gt;
  
  
  6. &lt;code&gt;git bisect&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Find which commit broke your code by binary search! 🔥&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git bisect start
git bisect bad
git bisect good &amp;lt;commit-hash&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git will now guide you step-by-step to find the guilty commit.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. &lt;code&gt;git remote prune origin&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: Clean up branches that were deleted on GitHub but still show locally.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote prune origin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Keep your repo fresh and tidy!&lt;/p&gt;




&lt;h3&gt;
  
  
  8. &lt;code&gt;git shortlog -s -n&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔹 &lt;strong&gt;Use case&lt;/strong&gt;: See who contributed the most (or least) to your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git shortlog &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Fun way to spot the hidden heroes on your team! 🌟&lt;/p&gt;




&lt;h1&gt;
  
  
  ✨ Bonus Tip: Aliases = Speed Boost
&lt;/h1&gt;

&lt;p&gt;Tired of typing long commands?&lt;br&gt;&lt;br&gt;
Set an alias like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.co checkout
git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.br branch
git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.cm &lt;span class="s2"&gt;"commit -m"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can simply run &lt;code&gt;git co main&lt;/code&gt; instead of &lt;code&gt;git checkout main&lt;/code&gt;! 🚀&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 Final Words
&lt;/h1&gt;

&lt;p&gt;Git isn't just a tool — it's a &lt;em&gt;superpower&lt;/em&gt; when you know how to use it well.&lt;br&gt;&lt;br&gt;
Master these advanced commands and &lt;strong&gt;Git Good&lt;/strong&gt;! 😎&lt;/p&gt;




</description>
      <category>learning</category>
      <category>commands</category>
      <category>git</category>
      <category>github</category>
    </item>
    <item>
      <title>🐳 What is Docker, How It Works, and Why We Need It (In Simple Terms with Fun Analogies)</title>
      <dc:creator>Harikrishnan N</dc:creator>
      <pubDate>Fri, 25 Apr 2025 19:23:39 +0000</pubDate>
      <link>https://dev.to/syssyncer/what-is-docker-how-it-works-and-why-we-need-it-in-simple-terms-with-fun-analogies-2b17</link>
      <guid>https://dev.to/syssyncer/what-is-docker-how-it-works-and-why-we-need-it-in-simple-terms-with-fun-analogies-2b17</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;br&gt;&lt;br&gt;
Today, I want to talk about &lt;strong&gt;Docker&lt;/strong&gt; — a tool that might seem complicated at first but becomes super clear once you look at it through the right lens.&lt;/p&gt;

&lt;p&gt;If you've ever built or run software, you've probably run into this problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“It worked on my machine! Why doesn’t it work on yours?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s where Docker comes to the rescue 🚀.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 What is Docker?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt; is like a &lt;strong&gt;magic shipping container&lt;/strong&gt; for your applications.&lt;/p&gt;

&lt;p&gt;Imagine you’re shipping a cake 🎂. You wouldn’t want to just toss it into the delivery truck — it might break, get ruined, or melt. Instead, you’d put it into a sturdy container that keeps it safe and fresh, no matter where it’s going.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker does the same thing for software&lt;/strong&gt;. It packages your app with everything it needs to run — the code, the libraries, the dependencies, and even the environment itself. Then, that package can run &lt;strong&gt;anywhere&lt;/strong&gt; — your laptop, your friend’s laptop, a server, or the cloud — and it’ll behave exactly the same.&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠 How Docker Works (In a Nutshell)
&lt;/h2&gt;

&lt;p&gt;Think of your computer as a big kitchen 🧑‍🍳. Normally, when you run apps, they all share the same kitchen. But what if one app needs a gas stove and another needs an electric one?&lt;/p&gt;

&lt;p&gt;That’s where Docker steps in. It gives each app its &lt;strong&gt;own mini-kitchen&lt;/strong&gt;, perfectly set up with everything it needs — isolated, clean, and reproducible.&lt;/p&gt;

&lt;p&gt;These mini-kitchens are called &lt;strong&gt;containers&lt;/strong&gt;. And they’re all created based on &lt;strong&gt;images&lt;/strong&gt; — like blueprints of the kitchen setup.&lt;/p&gt;


&lt;h2&gt;
  
  
  🤔 Why Do We Need Docker?
&lt;/h2&gt;

&lt;p&gt;Here’s why Docker has become so popular:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt; – It works the same in development, testing, and production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt; – Containers start in seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isolation&lt;/strong&gt; – Apps don’t mess with each other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficiency&lt;/strong&gt; – Uses less memory and storage than full virtual machines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt; – Easy to spin up more copies when demand grows.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  🔟 Top 10 Docker Commands with Real-World Analogies
&lt;/h2&gt;

&lt;p&gt;Let’s break down the most commonly used Docker commands with simple analogies:&lt;/p&gt;


&lt;h3&gt;
  
  
  1. &lt;code&gt;docker build&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;📦 &lt;strong&gt;Analogy:&lt;/strong&gt; Baking a cake from a recipe&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Build a Docker image from a &lt;code&gt;Dockerfile&lt;/code&gt;, which is your recipe."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; my-app &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. &lt;code&gt;docker run&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🚀 &lt;strong&gt;Analogy:&lt;/strong&gt; Starting the oven to bake the cake&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Run a container from an image — basically launch your mini-kitchen."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. &lt;code&gt;docker ps&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🔍 &lt;strong&gt;Analogy:&lt;/strong&gt; Checking what’s currently cooking in your kitchen&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"See all the containers that are currently running."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. &lt;code&gt;docker stop&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🛑 &lt;strong&gt;Analogy:&lt;/strong&gt; Turning off the oven&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Stop a running container."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop container_id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5. &lt;code&gt;docker rm&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🧹 &lt;strong&gt;Analogy:&lt;/strong&gt; Throwing away the old kitchen setup&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Remove a stopped container to clean up."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm &lt;/span&gt;container_id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  6. &lt;code&gt;docker rmi&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🗑️ &lt;strong&gt;Analogy:&lt;/strong&gt; Tossing the cake recipe&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Remove an image you no longer need."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi image_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7. &lt;code&gt;docker pull&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;📥 &lt;strong&gt;Analogy:&lt;/strong&gt; Downloading a cake recipe from the internet&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Get an image from Docker Hub or another registry."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  8. &lt;code&gt;docker exec&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🧑‍🍳 &lt;strong&gt;Analogy:&lt;/strong&gt; Stepping into the mini-kitchen to do something&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Run a command inside a running container."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; container_id bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  9. &lt;code&gt;docker logs&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;📜 &lt;strong&gt;Analogy:&lt;/strong&gt; Reading the cooking instructions or oven history&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"See the logs/output from a running container."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs container_id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  10. &lt;code&gt;docker-compose up&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;🏗️ &lt;strong&gt;Analogy:&lt;/strong&gt; Setting up multiple kitchens from a master plan&lt;br&gt;&lt;br&gt;
💬 &lt;em&gt;"Start multiple containers defined in a &lt;code&gt;docker-compose.yml&lt;/code&gt; file — great for apps with databases, frontends, etc."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;Docker might sound techy, but it's just a clever way to package and run software so that &lt;strong&gt;everything works everywhere&lt;/strong&gt;. Whether you’re a beginner building your first web app or an enterprise deploying at scale — Docker makes your life easier.&lt;/p&gt;

&lt;p&gt;Once you learn it, you’ll wonder how you ever worked without it.&lt;br&gt;&lt;br&gt;
Just remember — every time you run &lt;code&gt;docker run&lt;/code&gt;, you’re spinning up your own little kitchen 🍳.&lt;/p&gt;

&lt;p&gt;Happy Dockering! 🐳✨&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>learning</category>
    </item>
    <item>
      <title>Git Commands Explained with Quick Analogies</title>
      <dc:creator>Harikrishnan N</dc:creator>
      <pubDate>Thu, 24 Apr 2025 10:19:46 +0000</pubDate>
      <link>https://dev.to/syssyncer/git-commands-explained-with-quick-analogies-2i46</link>
      <guid>https://dev.to/syssyncer/git-commands-explained-with-quick-analogies-2i46</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;If Git feels like magic sometimes, here’s a cheat sheet that breaks it down with simple analogies. Think of Git as your time-traveling journal for code. Here's how the commands work, in human terms&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🔧 &lt;code&gt;git init&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Starting a journal"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You’re opening a fresh notebook to begin tracking your code changes.&lt;br&gt;
_&lt;br&gt;
➕ &lt;code&gt;git add &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Marking a page for publishing"&lt;/strong&gt;&lt;br&gt;
_You’ve written something and now you're folding the corner of the page to say, "This is worth saving."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📝 &lt;code&gt;git commit -m "&amp;lt;message&amp;gt;"&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Locking it in with a title"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You give the saved page a name and archive it in your notebook.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🌿 &lt;code&gt;git branch&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Looking at alternate storylines"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;See the different timelines your project is exploring.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🌱 &lt;code&gt;git branch &amp;lt;new_branch_name&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Starting a new storyline"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You begin a new chapter without messing up the main one.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔍 &lt;code&gt;git status&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Asking, 'What’s changed?'"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You check what’s written, saved, or still in draft.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📜 &lt;code&gt;git log&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Flipping back through your journal"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Look at every change you’ve ever made, in order.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🕵️ &lt;code&gt;git blame &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Who wrote this line?"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Track down who changed what and when — no judgment, just facts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔄 &lt;code&gt;git checkout &amp;lt;branch_name&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Switching to a different timeline"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Jump into another version of your project.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📬 &lt;code&gt;git fetch&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Checking your mailbox"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You peek at updates from the remote repo but don’t open them yet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🤝 &lt;code&gt;git merge &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Combining two timelines"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Bring changes from another storyline into your current one — without rewriting history.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🌐 &lt;code&gt;git pull&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Check your mail and apply the updates"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You get the latest changes and paste them right into your notebook.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;❌ &lt;code&gt;git rm --cached *&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Unmarking saved pages"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You tell Git to stop tracking files — like removing sticky notes without deleting the actual pages.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔧 &lt;code&gt;git config --list&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Looking at your Git settings"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;See your preferences and ID cards Git uses for tracking.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;💼 &lt;code&gt;git stash&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Temporarily hiding your work"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Tuck your changes in a drawer so you can switch tasks, then bring them back later.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🕰️ &lt;code&gt;git reset --hard HEAD~1&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;"Undo like you mean it"&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;You rip out your last journal page — poof, it’s gone. Use with care.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Feel like a Git wizard yet? Keep this as your spellbook. 🧙‍♂️✨&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>git</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
