mirror of https://github.com/docker/docs.git
95 lines
3.0 KiB
Markdown
95 lines
3.0 KiB
Markdown
---
|
|
datafolder: engine-cli
|
|
datafile: docker_network_create
|
|
title: docker network create
|
|
---
|
|
<!--
|
|
Sorry, but the contents of this page are automatically generated from
|
|
Docker's source code. If you want to suggest a change to the text that appears
|
|
here, you'll need to find the string by searching this repo:
|
|
|
|
https://www.github.com/docker/docker
|
|
-->
|
|
{% include cli.md %}
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
$ docker network create -d overlay my-multihost-network
|
|
```
|
|
|
|
Network names must be unique. The Docker daemon attempts to identify naming
|
|
conflicts but this is not guaranteed. It is the user's responsibility to avoid
|
|
name conflicts.
|
|
|
|
### Connect containers
|
|
|
|
When you start a container use the `--network` flag to connect it to a network.
|
|
This adds the `busybox` container to the `mynet` network.
|
|
|
|
```bash
|
|
$ docker run -itd --network=mynet busybox
|
|
```
|
|
|
|
If you want to add a container to a network after the container is already
|
|
running use the `docker network connect` subcommand.
|
|
|
|
You can connect multiple containers to the same network. Once connected, the
|
|
containers can communicate using only another container's IP address or name.
|
|
For `overlay` networks or custom plugins that support multi-host connectivity,
|
|
containers connected to the same multi-host network but launched from different
|
|
Engines can also communicate in this way.
|
|
|
|
You can disconnect a container from a network using the `docker network
|
|
disconnect` command.
|
|
|
|
### Specifying advanced options
|
|
|
|
When you create a network, Engine creates a non-overlapping subnetwork for the
|
|
network by default. This subnetwork is not a subdivision of an existing network.
|
|
It is purely for ip-addressing purposes. You can override this default and
|
|
specify subnetwork values directly using the `--subnet` option. On a
|
|
`bridge` network you can only create a single subnet:
|
|
|
|
```bash
|
|
$ docker network create -d bridge --subnet=192.168.0.0/16 br0
|
|
```
|
|
|
|
Additionally, you also specify the `--gateway` `--ip-range` and `--aux-address`
|
|
options.
|
|
|
|
```bash
|
|
$ docker network create \
|
|
--driver=bridge \
|
|
--subnet=172.28.0.0/16 \
|
|
--ip-range=172.28.5.0/24 \
|
|
--gateway=172.28.5.254 \
|
|
br0
|
|
```
|
|
|
|
If you omit the `--gateway` flag the Engine selects one for you from inside a
|
|
preferred pool. For `overlay` networks and for network driver plugins that
|
|
support it you can create multiple subnetworks.
|
|
|
|
```bash
|
|
$ docker network create -d overlay \
|
|
--subnet=192.168.0.0/16 \
|
|
--subnet=192.170.0.0/16 \
|
|
--gateway=192.168.0.100 \
|
|
--gateway=192.170.0.100 \
|
|
--ip-range=192.168.1.0/24 \
|
|
--aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
|
|
--aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
|
|
my-multihost-network
|
|
```
|
|
|
|
Be sure that your subnetworks do not overlap. If they do, the network create
|
|
fails and Engine returns an error.
|
|
|
|
#### Network internal mode
|
|
|
|
By default, when you connect a container to an `overlay` network, Docker also
|
|
connects a bridge network to it to provide external connectivity. If you want
|
|
to create an externally isolated `overlay` network, you can specify the
|
|
`--internal` option.
|