{"id":1542,"date":"2016-05-12T10:00:25","date_gmt":"2016-05-12T14:00:25","guid":{"rendered":"http:\/\/www.mymiller.name\/wordpress\/?p=1542"},"modified":"2019-05-11T15:29:26","modified_gmt":"2019-05-11T19:29:26","slug":"docker-networking-101","status":"publish","type":"post","link":"https:\/\/www.mymiller.name\/wordpress\/docker\/docker-networking-101\/","title":{"rendered":"Docker Networking 101"},"content":{"rendered":"<p dir=\"ltr\">Docker by default has three networks with it, that containers may use on the host. \u00a0I will try my best to explain them, and how to use them.<\/p>\n<h2 dir=\"ltr\">Bridge<\/h2>\n<p dir=\"ltr\">The Bridge network, is the 172.17.0.x network that containers use by default. \u00a0This allows them to connect to each other and the host to connect to the containers, this also allows them to reach out to the WAN. \u00a0This is nice, in the fact you can have mutiple containers all available and able to talk to each other, and perform the necessary steps to perform their function. \u00a0In this case, if you need to open up access to those containers, you could do so with Apache HTTPD as an HTTP Proxy to route from your network to your Bridge network for you.<\/p>\n<h2 dir=\"ltr\">None<\/h2>\n<p dir=\"ltr\">This is essentially not providing a network to your container at all. \u00a0An exact purpose for this would be a container that perform a specific function that does not need access to anything. \u00a0BIT Coing mining, Large Prime Searching, and other things that you may not want to have easily accessible. \u00a0I&#8217;m sure there are many other purposes that this could be used for as well, just they are not coming to mind.<\/p>\n<h2 dir=\"ltr\">Host<\/h2>\n<p dir=\"ltr\">The Host network, is mapping the the Docker Host&#8217;s network over to the container. \u00a0This provides access out to the intranet\/internet as your host has access. \u00a0Maybe your container needs to access the cooperate LDAP server for authentication, access the DB2 server for lookups, or any of a million other things it may need access to. \u00a0This makes it available to other system external to the Docker Host to access as well. Providing further access going to and out of the container.<\/p>\n<h2 dir=\"ltr\">Self-Created Networks<\/h2>\n<p dir=\"ltr\">Docker has three networks as described above by default, however there are ways for you to create your own network. \u00a0I&#8217;ll briefly discuss these here, to provide some familiarity.<\/p>\n<h3 dir=\"ltr\">Bridge-Network<\/h3>\n<p dir=\"ltr\">You can actually create your own Bridge-Network for your containers to use. \u00a0This is similar to the default Bridge network. \u00a0Allowing you to modify it&#8217;s setting to control exactly how this network runs.<\/p>\n<h3 dir=\"ltr\">Overlay-Network<\/h3>\n<p dir=\"ltr\">Used with a key-store such as Zookeeper, to bridge a network across multiple Docker Hosts. \u00a0The Docker Hosts must be running Docker Engine, and best if they are provisioned by a Docker Machine. This allows you to create a very extensive network across multiple Docker Hosts for very large systems.<\/p>\n<h3 dir=\"ltr\">Network Plugin<\/h3>\n<p dir=\"ltr\">Take things to the next level and build your own network driver for Docker. For further information look <a href=\"https:\/\/docs.docker.com\/engine\/extend\/plugins_network\/\">here<\/a>.<\/p>\n<h2 dir=\"ltr\">Listing Docker Networks<\/h2>\n<p dir=\"ltr\">Need to know what networks are on your system? \u00a0Use the following command to see what is present.<\/p>\n<pre dir=\"ltr\">docker network ls\r\n<\/pre>\n<p dir=\"ltr\">This will provide a list of the networks that Docker has on your current system.<\/p>\n<h2 dir=\"ltr\">Inspecting a Docker Network<\/h2>\n<p dir=\"ltr\">Need to know the details about a specific network? \u00a0Use the following command<\/p>\n<pre dir=\"ltr\">docker network inspect &lt;Network Name&gt;<\/pre>\n<p dir=\"ltr\">Will provide you a listing of all the settings for that network.<\/p>\n<h2 dir=\"ltr\">Using a Network<\/h2>\n<p dir=\"ltr\">By default when creating a container it will use the Bridge network. \u00a0If you need to use something different you can use the following command:<\/p>\n<pre dir=\"ltr\">docker run -t -i -d -v \/host\/src\/dir:\/container\/dest\/dir --net=&lt;Network Name&gt; --name &lt;Container Name&gt; &lt;image_name&gt;<\/pre>\n<p dir=\"ltr\">This will then create the container and it will use the specified Docker Network.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker by default has three networks with it, that containers may use on the host. \u00a0I will try my best to explain them, and how to use them. Bridge The Bridge network, is the 172.17.0.x network that containers use by default. \u00a0This allows them to connect to each other and the host to connect to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1707,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[277],"tags":[],"series":[],"class_list":["post-1542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2016\/05\/network-connection-414415_640.jpg?fit=640%2C426&ssl=1","jetpack-related-posts":[{"id":1537,"url":"https:\/\/www.mymiller.name\/wordpress\/docker\/docker-basics\/","url_meta":{"origin":1542,"position":0},"title":"Docker Basics 101","author":"Jeffery Miller","date":"May 10, 2016","format":false,"excerpt":"Building Docker Image Once you create your Dockerfile for your image, you need to build it. \u00a0You do that by running the following command from the directory that contains the Dockerfile. docker build -t <image_name> . Change \"image_name\" to be the name you want to give this image. \u00a0If you\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.mymiller.name\/wordpress\/category\/docker\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3897,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/a-beginners-guide-to-setting-up-ollama-with-docker-compose\/","url_meta":{"origin":1542,"position":1},"title":"A Beginner&#8217;s Guide to Setting Up Ollama with Docker Compose","author":"Jeffery Miller","date":"December 24, 2025","format":false,"excerpt":"Have you ever wanted to run a powerful large language model (LLM) like Llama 3 or Gemma right on your own computer, but you need a consistent and portable setup? That's where using Ollama with Docker and Docker Compose comes in. Docker Compose is a fantastic tool that allows you\u2026","rel":"","context":"In &quot;Spring AI&quot;","block_context":{"text":"Spring AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/spring_ai\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-8012676_1280.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-8012676_1280.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-8012676_1280.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-8012676_1280.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-8012676_1280.avif 3x"},"classes":[]},{"id":3903,"url":"https:\/\/www.mymiller.name\/wordpress\/docker\/the-s3-local-dev-trick-using-minio-to-simplify-cloud-native-developmen\/","url_meta":{"origin":1542,"position":2},"title":"The S3 Local Dev Trick: Using MinIO to Simplify Cloud-Native Developmen","author":"Jeffery Miller","date":"August 25, 2025","format":false,"excerpt":"As a software architect building cloud-native solutions, you know that working with cloud services like AWS S3 can be a bit tricky in a local development environment. You don't want to constantly connect to a remote bucket, and setting up complex local testing environments can be a pain. But what\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.mymiller.name\/wordpress\/category\/docker\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-9268117_1280.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-9268117_1280.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-9268117_1280.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-9268117_1280.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/08\/ai-generated-9268117_1280.avif 3x"},"classes":[]},{"id":3594,"url":"https:\/\/www.mymiller.name\/wordpress\/docker\/fips-jdk-21-image\/","url_meta":{"origin":1542,"position":3},"title":"FIPS JDK 21 Image","author":"Jeffery Miller","date":"July 12, 2024","format":false,"excerpt":"Warning: Use FIPS Instructions at Your Own Risk The provided Dockerfile and instructions are intended to assist in creating a FIPS-compliant environment for your Spring Boot application. However, achieving and maintaining FIPS compliance is a complex process with potential legal and security implications. By following these instructions, you acknowledge and\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.mymiller.name\/wordpress\/category\/docker\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/06\/Gemini_Generated_Image_6lwv546lwv546lwv-jpg.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/06\/Gemini_Generated_Image_6lwv546lwv546lwv-jpg.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/06\/Gemini_Generated_Image_6lwv546lwv546lwv-jpg.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/06\/Gemini_Generated_Image_6lwv546lwv546lwv-jpg.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/06\/Gemini_Generated_Image_6lwv546lwv546lwv-jpg.avif 3x"},"classes":[]},{"id":3740,"url":"https:\/\/www.mymiller.name\/wordpress\/springboot\/threading-in-spring-a-comprehensive-guide\/","url_meta":{"origin":1542,"position":4},"title":"Threading in Spring: A Comprehensive Guide","author":"Jeffery Miller","date":"December 23, 2025","format":false,"excerpt":"Threading is a crucial aspect of building modern, high-performance applications. It allows you to execute multiple tasks concurrently, improving responsiveness and utilizing system resources effectively. Spring Framework provides robust support for managing and using threads, simplifying development and ensuring efficiency. This article explores thread usage in Spring, delves into different\u2026","rel":"","context":"In &quot;Springboot&quot;","block_context":{"text":"Springboot","link":"https:\/\/www.mymiller.name\/wordpress\/category\/springboot\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/10\/ai-generated-8248619_1280-jpg.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/10\/ai-generated-8248619_1280-jpg.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/10\/ai-generated-8248619_1280-jpg.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/10\/ai-generated-8248619_1280-jpg.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/10\/ai-generated-8248619_1280-jpg.avif 3x"},"classes":[]},{"id":3878,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_messaging\/building-robust-kafka-applications-with-spring-boot-and-avro-schema-registry\/","url_meta":{"origin":1542,"position":5},"title":"Building Robust Kafka Applications with Spring Boot, and Avro Schema Registry","author":"Jeffery Miller","date":"April 20, 2026","format":false,"excerpt":"As a software architect, designing solutions that are scalable, maintainable, and resilient is paramount. In the world of event-driven architectures, Apache Kafka has become a cornerstone for high-throughput, low-latency data streaming. However, simply sending raw bytes over Kafka topics can lead to data inconsistency and make future evolution a nightmare.\u2026","rel":"","context":"In &quot;Spring Messaging&quot;","block_context":{"text":"Spring Messaging","link":"https:\/\/www.mymiller.name\/wordpress\/category\/spring_messaging\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/06\/ai-generated-7947638_1280.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/06\/ai-generated-7947638_1280.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/06\/ai-generated-7947638_1280.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/06\/ai-generated-7947638_1280.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2025\/06\/ai-generated-7947638_1280.avif 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/1542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/comments?post=1542"}],"version-history":[{"count":1,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/1542\/revisions"}],"predecessor-version":[{"id":1543,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/1542\/revisions\/1543"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/media\/1707"}],"wp:attachment":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/media?parent=1542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/categories?post=1542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/tags?post=1542"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/series?post=1542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}