<?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: Padhmeni Priya R R</title>
    <description>The latest articles on DEV Community by Padhmeni Priya R R (@padhmenipriya).</description>
    <link>https://dev.to/padhmenipriya</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%2F4073955%2F4c13b4a1-4a67-4d33-ba7b-34fb204ac01a.png</url>
      <title>DEV Community: Padhmeni Priya R R</title>
      <link>https://dev.to/padhmenipriya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/padhmenipriya"/>
    <language>en</language>
    <item>
      <title>Say Goodbye to WSL2 Lag Docker Built Its Own Virtual Machine Manager</title>
      <dc:creator>Padhmeni Priya R R</dc:creator>
      <pubDate>Thu, 13 Aug 2026 15:43:57 +0000</pubDate>
      <link>https://dev.to/padhmenipriya/say-goodbye-to-wsl2-lag-docker-built-its-own-virtual-machine-manager-1mo1</link>
      <guid>https://dev.to/padhmenipriya/say-goodbye-to-wsl2-lag-docker-built-its-own-virtual-machine-manager-1mo1</guid>
      <description>&lt;p&gt;Docker Desktop has always leaned on someone else's virtualization tech — Apple's framework on Mac, WSL2 or Hyper-V on Windows. As of Docker Desktop &lt;strong&gt;v4.86&lt;/strong&gt;, that changes: Docker shipped its &lt;strong&gt;own first-party hypervisor&lt;/strong&gt;, called &lt;strong&gt;Docker VMM&lt;/strong&gt;, now in public beta on Mac and Windows, with GA targeted for &lt;strong&gt;end of October 2026&lt;/strong&gt;. This post explains what a VMM even is, why Docker built one, and exactly how to try it — for beginners and pros alike.&lt;/p&gt;

&lt;p&gt;Download the latest version of Docker Desktop &lt;a href="https://docs.docker.com/desktop/" rel="noopener noreferrer"&gt;here&lt;/a&gt; choose the operating system according to what machine and where you want to install it&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Core Concept: What's a VMM, and Why Does It Matter?
&lt;/h2&gt;

&lt;p&gt;Docker Desktop doesn't run containers directly on macOS or Windows — neither OS ships a native Linux kernel. So Docker spins up a lightweight &lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;Linux VM&lt;/a&gt; in the background, and your containers actually run inside &lt;em&gt;that&lt;/em&gt;. The &lt;strong&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;Virtual Machine Manager (VMM)&lt;/a&gt;&lt;/strong&gt; is the software layer that creates and manages this VM — the engine room nobody sees, until it's slow.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4hkznos3zhpys56018b.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4hkznos3zhpys56018b.png" alt=" " width="616" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before Docker VMM&lt;/strong&gt;, that middle layer was third-party: &lt;a href="https://docs.docker.com/desktop/features/vmm/#alternative-vmms-for-mac" rel="noopener noreferrer"&gt;Apple Virtualization Framework&lt;/a&gt; or legacy HyperKit/QEMU on Mac, &lt;a href="https://docs.docker.com/desktop/features/wsl/" rel="noopener noreferrer"&gt;WSL2&lt;/a&gt; or Hyper-V on Windows. &lt;strong&gt;Docker VMM replaces it with Docker's own hypervisor&lt;/strong&gt;, purpose-built for container workloads instead of general-purpose VMs.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 Check what you're running right now
&lt;/h3&gt;

&lt;p&gt;Skip the Settings UI — confirm your current engine straight from the terminal:&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;# Confirm Docker Desktop is running and see the active context&lt;/span&gt;
docker desktop status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Docker Desktop is running
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# See kernel + OS details of the Linux VM your containers run inside&lt;/span&gt;
docker info &lt;span class="nt"&gt;--format&lt;/span&gt; &lt;span class="s1"&gt;'OS: {{.OperatingSystem}} | Kernel: {{.KernelVersion}}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OS: Docker Desktop | Kernel: 6.10.14-linuxkit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.docker.com/reference/cli/docker/desktop/status/" rel="noopener noreferrer"&gt;docs.docker.com/reference/cli/docker/desktop/status&lt;/a&gt; · &lt;a href="https://docs.docker.com/reference/cli/docker/system/info/" rel="noopener noreferrer"&gt;docs.docker.com/reference/cli/docker/system/info&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 &lt;strong&gt;Try this now:&lt;/strong&gt; open Docker Desktop → &lt;strong&gt;Settings → General → Virtual Machine Manager&lt;/strong&gt; → select &lt;strong&gt;Docker VMM&lt;/strong&gt; → &lt;strong&gt;Apply &amp;amp; restart&lt;/strong&gt;. Then re-run &lt;code&gt;docker desktop status&lt;/code&gt; to confirm it's live.&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkeddfkejxs4208qm9j6m.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkeddfkejxs4208qm9j6m.png" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Remember to restart your machine if you do no see this option
&lt;/h3&gt;

&lt;h2&gt;
  
  
  ⚙️ What Actually Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Improvement&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Reference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢⚡&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Faster startup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Container start times drop across first launch, restarts, and switches&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.docker.com/blog/docker-vmm-public-beta/" rel="noopener noreferrer"&gt;VMM beta blog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢🧠&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Idle memory reclaim&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Returns RAM to host when containers aren't active&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵📂&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Faster file I/O&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cuts latency in the edit-compile-test loop&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.docker.com/blog/docker-vmm-public-beta/" rel="noopener noreferrer"&gt;VMM beta blog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵🪟&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;No more WSL2 dependency (Windows)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Real VM boundary, Hyper-V-level isolation at WSL2-level speed&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.docker.com/blog/docker-vmm-public-beta/" rel="noopener noreferrer"&gt;VMM beta blog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣🛡️&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;First-party governance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Docker can monitor/control the hypervisor it owns&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7bbfbt5k5bilzdsv6jf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7bbfbt5k5bilzdsv6jf.png" alt=" " width="735" height="685"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Switching to Docker VMM
&lt;/h2&gt;

&lt;p&gt;🟢 Beginner &amp;nbsp; 🔵 Intermediate &amp;nbsp; 🟣 Advanced &amp;nbsp;|&amp;nbsp; 🍎 Mac &amp;nbsp; 🪟 Windows&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Reference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢🍎🪟&lt;/td&gt;
&lt;td&gt;Allocate ≥4GB RAM&lt;/td&gt;
&lt;td&gt;Docker VMM requires this minimum for the Linux VM&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢🍎🪟&lt;/td&gt;
&lt;td&gt;Settings → General → Virtual Machine Manager&lt;/td&gt;
&lt;td&gt;Locate the VMM selector in Docker Desktop&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢🍎🪟&lt;/td&gt;
&lt;td&gt;Select "Docker VMM"&lt;/td&gt;
&lt;td&gt;Opts into the new first-party hypervisor&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢🍎🪟&lt;/td&gt;
&lt;td&gt;Apply &amp;amp; restart&lt;/td&gt;
&lt;td&gt;Applies the change and restarts the Linux VM&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵🍎🪟&lt;/td&gt;
&lt;td&gt;Re-add bind mount shares if prompted&lt;/td&gt;
&lt;td&gt;Docker VMM doesn't auto-share folders like older backends&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;VMM docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🛠️ Verify &amp;amp; Diagnose from the CLI
&lt;/h2&gt;

&lt;p&gt;Once switched, confirm the engine actually restarted cleanly and pull logs if anything looks off — no need to leave the terminal.&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;# Restart Docker Desktop after a manual engine change&lt;/span&gt;
docker desktop restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Restarting Docker Desktop...
Docker Desktop is running
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.docker.com/reference/cli/docker/desktop/restart/" rel="noopener noreferrer"&gt;docker desktop restart&lt;/a&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;# Confirm the installed Docker Desktop version supports VMM (needs 4.86+)&lt;/span&gt;
docker desktop version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Docker Desktop 4.87.0 (198327)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.docker.com/reference/cli/docker/desktop/version/" rel="noopener noreferrer"&gt;docker desktop version&lt;/a&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;# Something feels off? Pull a full diagnostic bundle&lt;/span&gt;
docker desktop diagnose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Running diagnostics...
Diagnostics ID: 01ABCD23-4567-89EF-GHIJ-KLMNOPQRSTUV
Uploaded, ID above — share with Docker support if filing an issue
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.docker.com/reference/cli/docker/desktop/diagnose/" rel="noopener noreferrer"&gt;docker desktop diagnose&lt;/a&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;# Tail live Desktop logs while reproducing an issue&lt;/span&gt;
docker desktop logs &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.docker.com/reference/cli/docker/desktop/logs/" rel="noopener noreferrer"&gt;docker desktop logs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️ Known Beta Limitations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Limitation&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟣🍎&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;No Rosetta support (Mac)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Emulating amd64 images is slow; stick with &lt;a href="https://docs.docker.com/desktop/features/vmm/#alternative-vmms-for-mac" rel="noopener noreferrer"&gt;Apple Virt. Framework&lt;/a&gt; for x86 workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣🍎&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;virtiofs + certain databases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MongoDB and Cassandra may fail under Docker VMM's &lt;a href="https://docs.docker.com/desktop/features/synchronized-file-sharing/" rel="noopener noreferrer"&gt;virtiofs&lt;/a&gt;; fix expected in a future release&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵🍎🪟&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Restart sometimes required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Switching engines may need a manual &lt;code&gt;docker desktop restart&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  ✅ Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A VMM is the hidden layer that creates the Linux VM your containers actually run in — Docker now owns that layer instead of borrowing it.&lt;/li&gt;
&lt;li&gt;Docker VMM is opt-in beta today (v4.86+), becoming the &lt;strong&gt;default&lt;/strong&gt; at GA, targeted for &lt;strong&gt;end of October 2026&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Expect faster container startup, better file I/O, and smarter idle memory handling — especially noticeable in edit-compile-test loops.&lt;/li&gt;
&lt;li&gt;Mac users on Intel emulation (Rosetta) and certain databases under virtiofs should hold off until known issues are resolved.&lt;/li&gt;
&lt;li&gt;Switching back to your old backend is one settings toggle away — this is safe to try today.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 What Should I Cover Next?
&lt;/h2&gt;

&lt;p&gt;Vote in the comments: &lt;strong&gt;Docker VMM vs WSL2 benchmarks&lt;/strong&gt; · &lt;strong&gt;Migrating a MongoDB dev setup off virtiofs&lt;/strong&gt; · &lt;strong&gt;Docker Desktop resource tuning&lt;/strong&gt; · &lt;strong&gt;Docker Model Runner&lt;/strong&gt; · &lt;strong&gt;Docker Sandboxes for AI agents&lt;/strong&gt;. Tell me which and it's next.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;docker&lt;/code&gt; &lt;code&gt;devops&lt;/code&gt; &lt;code&gt;virtualization&lt;/code&gt; &lt;code&gt;beginners&lt;/code&gt; &lt;code&gt;DeveloperProductivity&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Hashtags:&lt;/strong&gt; &lt;code&gt;#Docker&lt;/code&gt; &lt;code&gt;#DevOps&lt;/code&gt; &lt;code&gt;#CloudNative&lt;/code&gt; &lt;code&gt;#DockerDesktop&lt;/code&gt; &lt;code&gt;#PlatformEngineering&lt;/code&gt; &lt;code&gt;#BuildInPublic&lt;/code&gt; &lt;code&gt;#100DaysOfCode&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Mentions:&lt;/strong&gt; &lt;code&gt;@Docker&lt;/code&gt; &lt;code&gt;@dev_community&lt;/code&gt; &lt;code&gt;@DockerCon&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Docker — &lt;a href="https://www.docker.com/blog/docker-vmm-public-beta/" rel="noopener noreferrer"&gt;Announcing: Docker VMM Public Beta&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docker — &lt;a href="https://docs.docker.com/desktop/features/vmm/" rel="noopener noreferrer"&gt;Virtual Machine Manager docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hacker News — &lt;a href="https://news.ycombinator.com/item?id=49239751" rel="noopener noreferrer"&gt;Discussion: Docker Sandboxes &amp;amp; the new Docker VMM architecture&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Collabnix — &lt;a href="https://dockerlabs.collabnix.com/beginners/difference-docker-vm.html" rel="noopener noreferrer"&gt;Difference between VM vs Docker&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ✍️ About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Padhmeni Priya R R&lt;/strong&gt; — Bioinformatics Master's grad working as a research scientist on cutting-edge variant analysis tools, endlessly curious about technology and AI-driven innovation.&lt;br&gt;
🔗 &lt;a href="https://www.linkedin.com/in/padhmeni" rel="noopener noreferrer"&gt;linkedin.com/in/padhmeni&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Drop a 🐳 if this saved you a search, and tell me what to cover next.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>dockervmm</category>
      <category>dockerdesktop</category>
      <category>developer</category>
    </item>
    <item>
      <title>50 Docker Commands That Will Make You Unstoppable in 2026 🐳⚡</title>
      <dc:creator>Padhmeni Priya R R</dc:creator>
      <pubDate>Wed, 12 Aug 2026 09:48:30 +0000</pubDate>
      <link>https://dev.to/padhmenipriya/50-docker-commands-that-will-make-you-unstoppable-in-2026-4gcb</link>
      <guid>https://dev.to/padhmenipriya/50-docker-commands-that-will-make-you-unstoppable-in-2026-4gcb</guid>
      <description>&lt;p&gt;You've googled &lt;em&gt;"docker command to remove stopped containers"&lt;/em&gt; at 2 AM. This post ends that cycle — with diagrams, not just a wall of text — for beginners and pros alike.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Core Concepts
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Image&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Read-only blueprint of your app — the recipe.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Container&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A running instance of an image — the cooked dish.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Registry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Remote image storage, e.g. Docker Hub.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Volume&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Persistent storage that survives container deletion.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Network&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Virtual wire letting containers talk by name.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frt0im5kue8xoo5e9ohct.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frt0im5kue8xoo5e9ohct.png" alt=" " width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try this now:&lt;/strong&gt; &lt;code&gt;docker run -d -p 8080:80 nginx&lt;/code&gt;, then open &lt;code&gt;localhost:8080&lt;/code&gt;. That's a real server running in a container.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Images
&lt;/h2&gt;

&lt;p&gt;🟢 Beginner 🔵 Intermediate 🟣 Advanced&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker build -t app .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Builds an image from a Dockerfile&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/build/" rel="noopener noreferrer"&gt;build&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker build --no-cache&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rebuilds ignoring cached layers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/build/" rel="noopener noreferrer"&gt;build&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker images&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists all local images&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/ls/" rel="noopener noreferrer"&gt;ls&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker rmi app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deletes a local image&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/rm/" rel="noopener noreferrer"&gt;rm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker image prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes dangling, untagged images&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker image prune -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes all unused images&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Downloads an image from a registry&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/pull/" rel="noopener noreferrer"&gt;pull&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker push user/app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Uploads an image to a registry&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/push/" rel="noopener noreferrer"&gt;push&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker tag app user/app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Renames or versions an image&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/tag/" rel="noopener noreferrer"&gt;tag&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker inspect app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows full image metadata as JSON&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/inspect/" rel="noopener noreferrer"&gt;inspect&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://www.docker.com/resources/cli-cheat-sheet/" rel="noopener noreferrer"&gt;Docker cheat sheet&lt;/a&gt; · &lt;a href="https://dockerlabs.collabnix.com/beginners/workingwithdockerimage.html" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=44836608" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Containers
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foema0vgmo2guvdx0i0t7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foema0vgmo2guvdx0i0t7.png" alt=" " width="800" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates and starts a container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run -d nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Runs a container in the background&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run --name web nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Runs a container with a custom name&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run -p 8080:80 nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maps a host port to a container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run -it ubuntu bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Runs a container with a live shell&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists running containers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/ls/" rel="noopener noreferrer"&gt;ls&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker ps -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists all containers, including stopped&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/ls/" rel="noopener noreferrer"&gt;ls&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker stop web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gracefully stops a container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/stop/" rel="noopener noreferrer"&gt;stop&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker start web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Restarts a stopped container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/start/" rel="noopener noreferrer"&gt;start&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker restart web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stops and starts a container again&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/restart/" rel="noopener noreferrer"&gt;restart&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker rm web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deletes a stopped container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/rm/" rel="noopener noreferrer"&gt;rm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker rm -f web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force-removes a running container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/rm/" rel="noopener noreferrer"&gt;rm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker exec -it web bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens a shell inside a running container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/exec/" rel="noopener noreferrer"&gt;exec&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker logs web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows a container's log output&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/logs/" rel="noopener noreferrer"&gt;logs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker logs -f web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streams logs live&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/logs/" rel="noopener noreferrer"&gt;logs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://docs.docker.com/engine/reference/run/" rel="noopener noreferrer"&gt;Running containers&lt;/a&gt; · &lt;a href="https://dockerlabs.collabnix.com/workshop/docker/" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=39468078" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧹 Cleanup
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker container prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes all stopped containers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker network prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes unused networks&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/network/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker volume prune&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes unused volumes — check data first&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/volume/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker system prune -a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes all unused images/containers/networks&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/system/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker system prune -a --volumes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same, plus wipes volumes — irreversible&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/system/prune/" rel="noopener noreferrer"&gt;prune&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker system df&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows Docker's disk usage&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/system/df/" rel="noopener noreferrer"&gt;df&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker system df -v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows detailed per-item disk usage&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/system/df/" rel="noopener noreferrer"&gt;df&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker kill $(docker ps -q)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force-stops every running container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/kill/" rel="noopener noreferrer"&gt;kill&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://docs.docker.com/reference/cli/docker/system/prune/" rel="noopener noreferrer"&gt;System prune docs&lt;/a&gt; · &lt;a href="https://collabnix.com/docs/" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=44836608" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌐 Networking &amp;amp; Volumes
&lt;/h2&gt;

&lt;p&gt;Containers on the same custom network resolve each other &lt;strong&gt;by name&lt;/strong&gt; — no hardcoded IPs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker network ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists all networks&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/network/ls/" rel="noopener noreferrer"&gt;ls&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker network create my-net&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates a custom bridge network&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/network/create/" rel="noopener noreferrer"&gt;create&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker network connect my-net web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attaches a container to a network&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/network/connect/" rel="noopener noreferrer"&gt;connect&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker network inspect my-net&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows subnet, driver, connected containers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/network/inspect/" rel="noopener noreferrer"&gt;inspect&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker volume create data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates a persistent volume&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/volume/create/" rel="noopener noreferrer"&gt;create&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker volume ls&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists all volumes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/volume/ls/" rel="noopener noreferrer"&gt;ls&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run -v data:/app nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mounts a named volume&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker run -v $(pwd):/app nginx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bind-mounts a local folder&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/run/" rel="noopener noreferrer"&gt;run&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://docs.docker.com/engine/network/" rel="noopener noreferrer"&gt;Networking overview&lt;/a&gt; · &lt;a href="https://github.com/collabnix/dockerlabs" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=39468078" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 Compose
&lt;/h2&gt;

&lt;p&gt;Compose replaces five &lt;code&gt;docker run&lt;/code&gt; commands with one YAML file.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Starts all services in docker-compose.yml&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/up/" rel="noopener noreferrer"&gt;up&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Starts services in the background&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/up/" rel="noopener noreferrer"&gt;up&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stops and removes Compose containers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/down/" rel="noopener noreferrer"&gt;down&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose down -v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same, plus deletes named volumes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/down/" rel="noopener noreferrer"&gt;down&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose logs -f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streams logs from all services&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/logs/" rel="noopener noreferrer"&gt;logs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker compose up --build&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rebuilds images before starting&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/compose/up/" rel="noopener noreferrer"&gt;up&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://docs.docker.com/reference/cli/docker/compose/" rel="noopener noreferrer"&gt;Compose CLI reference&lt;/a&gt; · &lt;a href="https://collabnix.com/docker-compose-cheatsheet/" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=44836608" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Debugging
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Docs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔵&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker stats&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows live CPU/memory usage per container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/stats/" rel="noopener noreferrer"&gt;stats&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟢&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker cp web:/app/f.json .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copies a file between host and container&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/container/cp/" rel="noopener noreferrer"&gt;cp&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;td&gt;&lt;code&gt;docker history app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows every layer used to build an image&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.docker.com/reference/cli/docker/image/history/" rel="noopener noreferrer"&gt;history&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Further reading: &lt;a href="https://docs.docker.com/reference/cli/docker/" rel="noopener noreferrer"&gt;Docker CLI reference&lt;/a&gt; · &lt;a href="https://dockerlabs.collabnix.com/" rel="noopener noreferrer"&gt;Collabnix&lt;/a&gt; · &lt;a href="https://news.ycombinator.com/item?id=39468078" rel="noopener noreferrer"&gt;HN&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Images are blueprints, containers are running instances — everything traces back to this.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker run&lt;/code&gt; is your most-used command — master &lt;code&gt;-d -p -v --name -it&lt;/code&gt; first.&lt;/li&gt;
&lt;li&gt;Cleanup isn't optional. Make &lt;code&gt;docker system prune -a --volumes&lt;/code&gt; a habit.&lt;/li&gt;
&lt;li&gt;Custom networks give free DNS — containers resolve each other by name.&lt;/li&gt;
&lt;li&gt;Compose replaces a wall of &lt;code&gt;docker run&lt;/code&gt; commands with one YAML file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker logs&lt;/code&gt;, &lt;code&gt;exec&lt;/code&gt;, and &lt;code&gt;inspect&lt;/code&gt; are your debugging trio.&lt;/li&gt;
&lt;li&gt;Bookmark this post — you don't need to memorize all 50.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 What Should I Cover Next?
&lt;/h2&gt;

&lt;p&gt;Vote in the comments: &lt;strong&gt;Compose deep dive&lt;/strong&gt; · &lt;strong&gt;Dockerfile best practices&lt;/strong&gt; · &lt;strong&gt;Advanced networking&lt;/strong&gt; · &lt;strong&gt;Docker security&lt;/strong&gt; · &lt;strong&gt;Docker + Kubernetes&lt;/strong&gt;. Tell me which and it's next.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;docker&lt;/code&gt; &lt;code&gt;devops&lt;/code&gt; &lt;code&gt;containers&lt;/code&gt; &lt;code&gt;beginners&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Hashtags:&lt;/strong&gt; &lt;code&gt;#Docker&lt;/code&gt; &lt;code&gt;#DevOps&lt;/code&gt; &lt;code&gt;#CloudNative&lt;/code&gt; &lt;code&gt;#100DaysOfCode&lt;/code&gt; &lt;code&gt;#PlatformEngineering&lt;/code&gt; &lt;code&gt;#Kubernetes&lt;/code&gt; &lt;code&gt;#BuildInPublic&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Mentions:&lt;/strong&gt; &lt;code&gt;@Docker&lt;/code&gt; &lt;code&gt;@dev_community&lt;/code&gt; &lt;code&gt;@github&lt;/code&gt; &lt;code&gt;@DockerCon&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✍️ About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Padhmeni Priya R R&lt;/strong&gt; — Bioinformatics Master's grad working as a research scientist on cutting-edge variant analysis tools, endlessly curious about technology and AI-driven innovation.&lt;br&gt;
🔗 &lt;a href="https://www.linkedin.com/in/padhmeni" rel="noopener noreferrer"&gt;linkedin.com/in/padhmeni&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Drop a 🐳 if this saved you a search, and tell me what to cover next.&lt;/em&gt;&lt;/p&gt;

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