✦ For everyone, free.

Practical knowledge for real and everyday life

Home

2.1.3.3 Network API Routes

A focused guide to Network API Routes, connecting core concepts with practical Docker and container operations.

Network API routes are the set of HTTP endpoints, under the /networks path, that the Docker daemon exposes for creating, listing, inspecting, connecting containers to, and removing the virtual networks containers use to communicate.

Listing Networks

A route returns every network currently defined on the daemon, including the default networks Docker creates automatically and any user-defined networks.

curl --unix-socket /var/run/docker.sock http://localhost/networks

This corresponds to what docker network ls displays as a formatted table.

Creating a Network

Creating a network specifies its name and driver (such as bridge for single-host networking or overlay for multi-host networking in a Swarm).

curl --unix-socket /var/run/docker.sock -X POST http://localhost/networks/create \
  -H "Content-Type: application/json" \
  -d '{"Name":"myapp-net","Driver":"bridge"}'
Connecting and Disconnecting Containers

Separate routes attach a running or stopped container to a network, or detach it, which can be done after a container has already started, not just at creation time.

curl --unix-socket /var/run/docker.sock -X POST http://localhost/networks/myapp-net/connect \
  -H "Content-Type: application/json" \
  -d '{"Container":"myapp"}'
Inspecting Network Membership

A dedicated route returns full details about a network, including which containers are currently attached to it and what IP addresses they have been assigned.

curl --unix-socket /var/run/docker.sock http://localhost/networks/myapp-net

This is the underlying data behind docker network inspect, useful for diagnosing why two containers can or cannot reach each other.

Removing a Network

A network can only be removed once no containers remain attached to it, the same constraint the CLI enforces when running docker network rm.

curl --unix-socket /var/run/docker.sock -X DELETE http://localhost/networks/myapp-net
Why These Routes Matter

Programmatically managing container networking — for example, dynamically attaching newly created containers to the correct network as part of an automated deployment process — depends directly on these routes, since they are the only interface through which network state can be changed.