<?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: Animesh Mukherjee</title>
    <description>The latest articles on DEV Community by Animesh Mukherjee (@animeshmukherjee_dev).</description>
    <link>https://dev.to/animeshmukherjee_dev</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%2F3942515%2F508b5e19-6cf0-42f6-8f8a-b9a34d9717c1.jpg</url>
      <title>DEV Community: Animesh Mukherjee</title>
      <link>https://dev.to/animeshmukherjee_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/animeshmukherjee_dev"/>
    <language>en</language>
    <item>
      <title>Docker Fundamentals: Everything You Need to Know Before Touching Kubernetes</title>
      <dc:creator>Animesh Mukherjee</dc:creator>
      <pubDate>Wed, 20 May 2026 14:44:38 +0000</pubDate>
      <link>https://dev.to/animeshmukherjee_dev/docker-fundamentals-everything-you-need-to-know-before-touching-kubernetes-2kmf</link>
      <guid>https://dev.to/animeshmukherjee_dev/docker-fundamentals-everything-you-need-to-know-before-touching-kubernetes-2kmf</guid>
      <description>&lt;p&gt;&lt;em&gt;Day 1 of the #40DaysOfKubernetes Challenge — Key Takeaways&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;If you're on the path to becoming a Certified Kubernetes Administrator (CKA), there's one thing you can't skip: Docker. Before you can orchestrate containers at scale, you need to understand what a container actually is, how it runs, and why it exists. That's exactly what Day 1 of Piyush Sachdeva's CKA Full Course 2025 covers — and it's a surprisingly rich foundation.&lt;/p&gt;

&lt;p&gt;Here's what I took away.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Docker Before Kubernetes?
&lt;/h2&gt;

&lt;p&gt;Kubernetes doesn't run applications — it manages containers. And Docker is still the most widely used container runtime. Without understanding how Docker packages and runs an application, Kubernetes concepts like Pods, Deployments, and Services won't make intuitive sense. Docker is the vocabulary; Kubernetes is the grammar.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Problem Docker Solves
&lt;/h2&gt;

&lt;p&gt;Traditional application deployment had a notorious problem: &lt;em&gt;"it works on my machine."&lt;/em&gt; Developers would build something locally, hand it over to ops, and watch everything break in production due to environment differences — OS versions, library mismatches, configuration drift.&lt;/p&gt;

&lt;p&gt;Docker solves this with &lt;strong&gt;containerization&lt;/strong&gt; — packaging your application along with all its dependencies (runtime, libraries, config) into a single portable unit called a &lt;strong&gt;container&lt;/strong&gt;. Wherever that container runs, it behaves identically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Virtual Machines vs. Docker Containers
&lt;/h2&gt;

&lt;p&gt;This is one of the most clarifying comparisons in the entire course. Both VMs and containers provide isolation, but they do it very differently.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Virtual Machine&lt;/th&gt;
&lt;th&gt;Docker Container&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Includes OS&lt;/td&gt;
&lt;td&gt;Yes (full OS per VM)&lt;/td&gt;
&lt;td&gt;No (shares host OS kernel)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Startup time&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;GBs&lt;/td&gt;
&lt;td&gt;MBs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resource usage&lt;/td&gt;
&lt;td&gt;Heavy&lt;/td&gt;
&lt;td&gt;Lightweight&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Isolation level&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Process-level&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A VM virtualizes hardware and runs a full operating system on top. A container virtualizes at the OS level — it shares the host's kernel but keeps its own filesystem, processes, and network. This makes containers dramatically faster and lighter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The key insight:&lt;/strong&gt; Containers are not mini-VMs. They are isolated processes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Docker Architecture: The Moving Parts
&lt;/h2&gt;

&lt;p&gt;Understanding how Docker works internally removes a lot of confusion later. The architecture has three main components:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Client&lt;/strong&gt; — the CLI you interact with. When you type &lt;code&gt;docker run&lt;/code&gt;, this is what you're talking to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Daemon (dockerd)&lt;/strong&gt; — the background service that does the actual work: building images, running containers, managing volumes and networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Registry&lt;/strong&gt; — where images live. Docker Hub is the default public registry. You can also self-host a private registry. When you &lt;code&gt;docker pull&lt;/code&gt;, you're fetching from here.&lt;/p&gt;

&lt;p&gt;The flow is simple: Client → Daemon → Registry (if needed) → Container.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Docker Workflow: From Code to Container
&lt;/h2&gt;

&lt;p&gt;Dockerizing an application follows a consistent pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Write a Dockerfile&lt;/strong&gt; — a text file with instructions on how to build your image (base image, copy code, install dependencies, set entry point).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build the image&lt;/strong&gt; — &lt;code&gt;docker build&lt;/code&gt; reads your Dockerfile and creates an image layer by layer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push to a registry&lt;/strong&gt; — &lt;code&gt;docker push&lt;/code&gt; uploads your image so others (or your cluster) can pull it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run a container&lt;/strong&gt; — &lt;code&gt;docker run&lt;/code&gt; creates and starts a container from the image.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each layer in a Docker image is cached. This means if your dependencies haven't changed, rebuilds are fast — only the changed layers are re-processed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Essential Docker Commands to Know
&lt;/h2&gt;

&lt;p&gt;These are the commands that will appear constantly in your workflow:&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;# Pull an image from Docker Hub&lt;/span&gt;
docker pull nginx

&lt;span class="c"&gt;# Run a container (detached, with port mapping)&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 nginx

&lt;span class="c"&gt;# List running containers&lt;/span&gt;
docker ps

&lt;span class="c"&gt;# List all containers (including stopped)&lt;/span&gt;
docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;

&lt;span class="c"&gt;# Stop a container&lt;/span&gt;
docker stop &amp;lt;container_id&amp;gt;

&lt;span class="c"&gt;# Remove a container&lt;/span&gt;
docker &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;container_id&amp;gt;

&lt;span class="c"&gt;# Build an image from a Dockerfile&lt;/span&gt;
docker build &lt;span class="nt"&gt;-t&lt;/span&gt; my-app:v1 &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Push image to a registry&lt;/span&gt;
docker push myrepo/my-app:v1

&lt;span class="c"&gt;# View logs&lt;/span&gt;
docker logs &amp;lt;container_id&amp;gt;

&lt;span class="c"&gt;# Execute a command inside a running container&lt;/span&gt;
docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; &amp;lt;container_id&amp;gt; bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The CKA Connection
&lt;/h2&gt;

&lt;p&gt;Everything in Kubernetes — from scheduling Pods to rolling deployments to health checks — assumes that your workloads are containers. Understanding Docker's image layering, container lifecycle, port mappings, and environment variables directly maps to Kubernetes concepts you'll encounter in later modules.&lt;/p&gt;

&lt;p&gt;Day 1 isn't glamorous, but it's foundational. If you're solid on Docker, everything that follows in the 40-day challenge becomes much easier to absorb.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The #40DaysOfKubernetes challenge by Piyush Sachdeva continues with container networking, Kubernetes architecture, Pods, ReplicaSets, and much more. The full course is free on YouTube and includes hands-on tasks on GitHub.&lt;/p&gt;

&lt;p&gt;If you're preparing for the CKA exam or just want to level up your DevOps skills, this is a well-structured place to start.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Source: &lt;a href="https://www.youtube.com/watch?v=ul96dslvVwY" rel="noopener noreferrer"&gt;Day 1/40 — Docker Tutorial For Beginners, CKA Full Course 2025 by Tech Tutorials with Piyush&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>docker</category>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
