Bird
Raised Fist0
Dockerdevops~5 mins

Creating custom bridge networks in Docker - Step-by-Step CLI Walkthrough

Choose your learning style10 modes available
Introduction
Sometimes, you want your Docker containers to talk to each other in a private space without interference. Creating a custom bridge network lets you control how containers connect and communicate securely on your machine.
When you want to isolate a group of containers from others on your system for security.
When you need containers to communicate using custom network settings like specific IP ranges.
When you want to give containers easy-to-remember names to connect instead of IP addresses.
When you want to avoid conflicts with Docker's default network settings.
When you want to connect containers across multiple Docker hosts using the same network name.
Commands
This command creates a new custom bridge network named 'my-custom-network' so containers can connect to it and communicate privately.
Terminal
docker network create --driver bridge my-custom-network
Expected OutputExpected
3d2e1f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3
→
--driver bridge - Specifies the network type as a bridge network.
Lists all Docker networks so you can verify that 'my-custom-network' was created successfully.
Terminal
docker network ls
Expected OutputExpected
NETWORK ID NAME DRIVER SCOPE 3d2e1f4a5b6c bridge bridge local 7f8g9h0i1j2k host host local 9l0m1n2o3p4q none null local 3d2e1f4a5b6c my-custom-network bridge local
Runs a new container named 'my-app' using the nginx image and connects it to the custom bridge network so it can communicate with other containers on this network.
Terminal
docker run -d --name my-app --network my-custom-network nginx
Expected OutputExpected
a1b2c3d4e5f67890123456789abcdef0123456789abcdef0123456789abcdef0
→
--network my-custom-network - Connects the container to the custom bridge network.
→
-d - Runs the container in detached mode (in the background).
Shows detailed information about the custom bridge network, including connected containers and IP address ranges.
Terminal
docker network inspect my-custom-network
Expected OutputExpected
[ { "Name": "my-custom-network", "Id": "3d2e1f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3", "Created": "2024-06-01T12:00:00.000000000Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Containers": { "a1b2c3d4e5f67890123456789abcdef0123456789abcdef0123456789abcdef0": { "Name": "my-app", "EndpointID": "e1f2a3b4c5d6e7f8a9b0c1d2e3f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2", "MacAddress": "02:42:ac:12:00:02", "IPv4Address": "172.18.0.2/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
Key Concept

If you remember nothing else from this pattern, remember: custom bridge networks let your containers talk privately and safely with custom settings.

Common Mistakes
Not specifying the --driver bridge flag when creating the network.
Docker might create a network with a different driver, causing unexpected behavior or incompatibility.
Always include --driver bridge to ensure the network is a bridge type.
Forgetting to connect containers to the custom network using --network flag.
Containers will connect to the default network and won't communicate on the custom network.
Use --network my-custom-network when running containers to connect them properly.
Assuming the network is created without checking with docker network ls.
The network might fail to create due to name conflicts or other errors, causing confusion later.
Always verify network creation with docker network ls before running containers.
Summary
Create a custom bridge network with docker network create --driver bridge my-custom-network.
Verify the network exists using docker network ls.
Run containers connected to this network using docker run --network my-custom-network.
Inspect the network details and connected containers with docker network inspect my-custom-network.

Practice

(1/5)
1. What is the main purpose of creating a custom bridge network in Docker?
easy
A. To increase the CPU usage of containers
B. To allow containers to communicate privately and securely
C. To automatically update container images
D. To create a backup of container data

Solution

  1. Step 1: Understand Docker networking basics

    Docker uses networks to connect containers. The default bridge network is shared and less secure.
  2. Step 2: Purpose of custom bridge networks

    Custom bridge networks isolate containers, allowing private and secure communication between them.
  3. Final Answer:

    To allow containers to communicate privately and securely -> Option B
  4. Quick Check:

    Custom bridge network = private container communication [OK]
Hint: Custom bridge = private container communication [OK]
Common Mistakes:
  • Thinking custom bridge increases CPU usage
  • Confusing network creation with image updates
  • Assuming it creates data backups
2. Which of the following is the correct command to create a custom bridge network named my_bridge?
easy
A. docker network create --driver bridge my_bridge
B. docker create network bridge my_bridge
C. docker network new --type bridge my_bridge
D. docker bridge create network my_bridge

Solution

  1. Step 1: Recall Docker network creation syntax

    The correct syntax is docker network create --driver bridge NETWORK_NAME.
  2. Step 2: Match the command with the syntax

    docker network create --driver bridge my_bridge matches the correct syntax exactly for creating a bridge network named my_bridge.
  3. Final Answer:

    docker network create --driver bridge my_bridge -> Option A
  4. Quick Check:

    Correct syntax = docker network create --driver bridge [OK]
Hint: Use 'docker network create --driver bridge NAME' [OK]
Common Mistakes:
  • Using wrong command order
  • Missing --driver flag
  • Using 'new' or 'create' incorrectly
3. Given the command docker network create --driver bridge isolated_net, what will be the output of docker network ls related to this network?
medium
A. No change; the network list remains the same
B. An error message saying 'driver not found' will appear
C. The default bridge network will be removed
D. A new network named 'isolated_net' with driver 'bridge' will appear in the list

Solution

  1. Step 1: Understand the effect of the create command

    The command creates a new bridge network named 'isolated_net'.
  2. Step 2: Check the network list after creation

    Running docker network ls shows all networks including the newly created 'isolated_net' with driver 'bridge'.
  3. Final Answer:

    A new network named 'isolated_net' with driver 'bridge' will appear in the list -> Option D
  4. Quick Check:

    New bridge network appears in list [OK]
Hint: New bridge network shows in 'docker network ls' [OK]
Common Mistakes:
  • Expecting an error for valid driver
  • Thinking default bridge is removed
  • Assuming no change in network list
4. You ran docker network create --driver bridge without specifying a network name. What is the likely result?
medium
A. Docker creates a network named 'bridge' by default
B. Docker creates a network with a random generated name
C. Docker throws an error about missing network name
D. Docker creates the default bridge network again

Solution

  1. Step 1: Check required arguments for network creation

    The docker network create command requires a network name after options.
  2. Step 2: Result of missing network name

    Omitting the network name causes Docker to throw an error indicating the missing argument.
  3. Final Answer:

    Docker throws an error about missing network name -> Option C
  4. Quick Check:

    Missing name causes error [OK]
Hint: Always specify network name after options [OK]
Common Mistakes:
  • Assuming Docker auto-generates network name
  • Thinking 'bridge' is default name created
  • Confusing with default bridge network
5. You want two containers to communicate only with each other and not with other containers on the host. Which steps correctly create and use a custom bridge network named private_net?
hard
A. Create network with docker network create --driver bridge private_net and run containers with --network private_net
B. Run containers with --link option without creating a network
C. Use default bridge network and assign static IPs manually
D. Create network with docker network create private_net without specifying driver

Solution

  1. Step 1: Create a custom bridge network

    Use docker network create --driver bridge private_net to create an isolated network.
  2. Step 2: Run containers attached to this network

    Start containers with --network private_net so they communicate only within this network.
  3. Final Answer:

    Create network with 'docker network create --driver bridge private_net' and run containers with '--network private_net' -> Option A
  4. Quick Check:

    Custom bridge + --network = isolated container communication [OK]
Hint: Create bridge network then run containers with --network [OK]
Common Mistakes:
  • Using --link which is deprecated
  • Relying on default bridge for isolation
  • Omitting --driver option causing default driver
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard