<?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: whatindev</title>
    <description>The latest articles on DEV Community by whatindev (@whatindev).</description>
    <link>https://dev.to/whatindev</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%2F2641983%2Feaad6024-6bc3-4d2c-9cdc-003ed8087017.png</url>
      <title>DEV Community: whatindev</title>
      <link>https://dev.to/whatindev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/whatindev"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>whatindev</dc:creator>
      <pubDate>Mon, 10 Feb 2025 17:23:29 +0000</pubDate>
      <link>https://dev.to/whatindev/-1idg</link>
      <guid>https://dev.to/whatindev/-1idg</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/whatindev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F2641983%2Feaad6024-6bc3-4d2c-9cdc-003ed8087017.png" alt="whatindev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/whatindev/docker-networking-explained-theory-and-network-drivers-simplified-4m20" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Docker Networking Explained: Theory and Network Drivers Simplified&lt;/h2&gt;
      &lt;h3&gt;whatindev ・ Feb 10&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#docker&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#softwaredevelopment&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>docker</category>
      <category>softwaredevelopment</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Docker Networking Explained: Theory and Network Drivers Simplified</title>
      <dc:creator>whatindev</dc:creator>
      <pubDate>Mon, 10 Feb 2025 17:21:39 +0000</pubDate>
      <link>https://dev.to/whatindev/docker-networking-explained-theory-and-network-drivers-simplified-4m20</link>
      <guid>https://dev.to/whatindev/docker-networking-explained-theory-and-network-drivers-simplified-4m20</guid>
      <description>&lt;p&gt;Without robust networking, containers would remain isolated, hindering their ability to function as part of a cohesive application. Docker networking abstracts the complexity of configuring network connections, making it easier for developers and operators to deploy containerized applications with minimal effort. It provides the means to connect containers to each other, to the host, and to external networks. This capability is crucial for enabling seamless communication between microservices, ensuring high availability, and achieving scalability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/javarevisited/sdocker-networking-explained-theory-and-network-drivers-simplified-8c93252d2719" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;This article originally published here&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&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%2F1myjgok47lko1s5kluq5.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%2F1myjgok47lko1s5kluq5.png" alt="Container Communication: Isolation vs Custom Networking" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
As always, before we dive in, here's a quick note: This article requires your full attention. It's packed with valuable insights and foundational knowledge about Docker. To truly grasp the concepts and understand how Docker Networking works, take your time and read carefully till the end. By the time you finish, you'll have a solid understanding of Docker networking theory.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Networking Basics: A Foundation for Understanding Docker Networking
&lt;/h2&gt;

&lt;p&gt;Networking is a fundamental concept that ensures communication between devices, whether they are physical machines or virtual containers. Let's explore some key components:&lt;/p&gt;

&lt;h3&gt;
  
  
  What Is a Network?
&lt;/h3&gt;

&lt;p&gt;A network is a group of interconnected devices that share data. These networks can range from local setups (LANs) to the global internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Routers and Switches
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Routers&lt;/strong&gt; connect different networks, enabling communication between them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switches&lt;/strong&gt; connect devices within the same network.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Subnets and IP Addressing
&lt;/h3&gt;

&lt;p&gt;Networks are divided into subnets for better organization and routing. Each subnet is assigned a unique range of IP addresses. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Devices in one subnet might have IPs like &lt;code&gt;10.0.0.x&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Another subnet could have &lt;code&gt;192.168.1.x&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Visualizing the Network
&lt;/h3&gt;

&lt;p&gt;The following diagram illustrates how devices in different subnets communicate through a router and switches:  &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%2Fmq4er94vdn72m4z7wfn1.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%2Fmq4er94vdn72m4z7wfn1.png" alt="diagram illustrates how devices in different subnets communicate through a router and switches" width="800" height="201"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This structure highlights how devices in one subnet (e.g., &lt;code&gt;10.0.0.x&lt;/code&gt;) can communicate with another subnet (e.g., &lt;code&gt;192.168.1.x&lt;/code&gt;) via a router.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Relevance to Docker
&lt;/h3&gt;

&lt;p&gt;Docker uses similar networking principles. Containers often reside in isolated subnets and rely on bridges (acting as virtual switches) and NAT (via a virtual router) to communicate with each other or external networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker Network Drivers
&lt;/h2&gt;

&lt;p&gt;Before diving into Docker network drivers, it's important to understand the &lt;strong&gt;Container Networking Model (CNM)&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Container Networking Model (CNM)
&lt;/h3&gt;

&lt;p&gt;The CNM defines the core components and workflows for container networking. It includes three main elements:&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%2Fefye0kgqs53cwvaij6js.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%2Fefye0kgqs53cwvaij6js.png" alt="CNM core components" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Network Sandbox&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The sandbox is a container's private network space. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network interfaces (e.g., eth0)&lt;/li&gt;
&lt;li&gt;Routing tables&lt;/li&gt;
&lt;li&gt;Firewall rules
The sandbox ensures that each container's network environment is isolated from others.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
An endpoint is a virtual network interface that connects a container to a network. Each endpoint:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Belongs to a single network.&lt;/li&gt;
&lt;li&gt;Is assigned an IP address.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Network&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A network is a logical construct that groups endpoints, enabling communication between them. Networks can span across hosts in the case of overlay drivers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What Are Docker Network Drivers?
&lt;/h3&gt;

&lt;p&gt;Docker network drivers are pluggable interfaces that implement networking functionality for containers. They abstract the complexities of the CNM and make it easy for users to configure container networking.&lt;/p&gt;

&lt;p&gt;Docker provides several built-in network drivers for common use cases, including service discovery, encryption, and multi-host networking. Additionally, there are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Third-party drivers developed by plugin providers for specialized scenarios.&lt;/li&gt;
&lt;li&gt;Custom drivers, which users can create for specific needs (though rarely required).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Four Built-In Docker Network Drivers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  None Driver
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Disables networking entirely for a container.&lt;/li&gt;
&lt;li&gt;The container is isolated from all other containers and external networks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Host Driver
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The container shares the network stack with the Docker host.&lt;/li&gt;
&lt;li&gt;The container essentially appears as the host itself in terms of networking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Bridge Driver (Default)
&lt;/h3&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%2F7c4sfjil6qt5in28fyeg.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%2F7c4sfjil6qt5in28fyeg.png" alt="Isolation and Communication in Docker Bridge Networks" width="800" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates an internal network within a single Docker host.&lt;/li&gt;
&lt;li&gt;Containers in this network can communicate with each other but are isolated from external networks or containers on other networks.&lt;/li&gt;
&lt;li&gt;The bridge driver is the default for standalone containers and Docker Compose setups.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Overlay Driver
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Creates a distributed network spanning multiple Docker hosts.&lt;/li&gt;
&lt;li&gt;Ideal for multi-host setups, such as Docker Swarm services, where containers need to communicate across nodes.&lt;/li&gt;
&lt;li&gt;The overlay driver is the default for Docker Swarm.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Are Network Drivers Important?
&lt;/h2&gt;

&lt;p&gt;Docker network drivers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pluggable&lt;/strong&gt;: Allowing extensibility and flexibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portable&lt;/strong&gt;: Enabling container networking across diverse environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Powerful&lt;/strong&gt;: Supporting container-to-container communication and integration with non-Docker workloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By abstracting the complexities of networking, Docker drivers empower engineers to build and deploy containerized applications efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, Docker networking forms the backbone of containerized applications, enabling seamless communication between containers, hosts, and external systems. By abstracting complex networking principles into simple, pluggable drivers, Docker empowers developers to focus on building scalable and reliable applications without getting bogged down by infrastructure challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  For more about Docker, check out our series of articles:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/javarevisited/understanding-docker-the-core-architecture-behind-containers-872b82e8661f" rel="noopener noreferrer"&gt;Understanding Docker: The Core Architecture Behind Containers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/javarevisited/introduction-to-docker-comparing-physical-servers-virtual-machines-and-containers-c920b66ec32f" rel="noopener noreferrer"&gt;History Behind Docker: Comparing Physical Servers, Virtual Machines, and Containers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/javarevisited/containers-vs-virtual-machines-key-differences-explained-d27dbf71f0de" rel="noopener noreferrer"&gt;Containers vs Virtual Machines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>softwaredevelopment</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>First Post: Want to great you by this insightful article about Docker History</title>
      <dc:creator>whatindev</dc:creator>
      <pubDate>Wed, 01 Jan 2025 17:59:02 +0000</pubDate>
      <link>https://dev.to/whatindev/first-post-want-to-great-you-by-this-insightful-article-about-docker-history-5c4k</link>
      <guid>https://dev.to/whatindev/first-post-want-to-great-you-by-this-insightful-article-about-docker-history-5c4k</guid>
      <description>&lt;p&gt;Link: &lt;a href="https://medium.com/javarevisited/introduction-to-docker-comparing-physical-servers-virtual-machines-and-containers-c920b66ec32f" rel="noopener noreferrer"&gt;History behind Docker: Comparing Physical Servers, Virtual Machines, and Containers&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
Happy Read !!&lt;/p&gt;

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