Table of Contents
What are the differences between the four docker network modes
Home Operation and Maintenance Docker What are the differences between the four network modes of docker?

What are the differences between the four network modes of docker?

Feb 23, 2022 am 11:45 AM
docker

Differences: 1. The container in host mode and the host share a "Network Namespace"; 2. The container created in Container mode will share the IP and port range with the specified container; 3. None mode closes the container Network function; 4. Bridge default mode assigns IP to each container.

What are the differences between the four network modes of docker?

The operating environment of this tutorial: linux7.3 system, docker-1.13.1 version, Dell G3 computer.

What are the differences between the four docker network modes

1. Four network modes

What are the differences between the four network modes of docker?

2. Implementation Principle

Docker uses Linux bridging to virtualize a Docker container bridge (docker0) on the host. When Docker starts a container, it will The network segment of the Docker bridge is assigned to the container an IP address, called Container-IP, and the Docker bridge is the default gateway of each container. Because containers in the same host are all connected to the same network bridge, containers can communicate directly through the container's Container-IP

The Docker bridge is virtualized by the host and does not really exist The network device cannot be addressed by the external network, which also means that the external network cannot access the container through direct Container-IP. If the container wants to be accessible from the outside, you can map the container port to the host (port mapping), that is, enable it through the -p or -P parameter when docker run creates the container, and use [host IP] when accessing the container: [Container Port] Access the container

1.Host mode

If you use the host mode when starting the container, the container will not get an independent Network Namespace. Instead, it shares a Network Namespace with the host. The container will not virtualize its own network card, configure its own IP, etc., but use the host's IP and port.

Containers using host mode can directly use the host. The IP address of the host communicates with the outside world. The service port inside the container can also use the host's port without NAT. The biggest advantage of the host is that the network performance is better, but the ports already used on the docker host cannot be used again. The isolation of the network is not good

2.Container mode

The container created will not create its own network card and configure its own IP, but will communicate with a specified container Shared IP, port range

This mode specifies that the newly created container shares a Network Namespace with an existing container, rather than sharing it with the host. Similarly, apart from the network, the two containers are also isolated in other aspects such as file systems, process lists, etc. The processes of the two containers can communicate through the lo network card device

3.None mode

This mode turns off the network function of the container

Use none mode , Docker containers have their own Network Namespace, but no network configuration is performed for Docker containers. In other words, this Docker container does not have network card, IP, routing and other information. We need to add network cards, configure IP, etc. to the Docker container ourselves

In this network mode, the container only has the lo loopback network and no other network cards. The none mode can be specified via --network=none when the container is created. This type of network cannot be connected to the Internet. A closed network can ensure the security of the container.

Without a network, the security is very high. Data can be stored safely and will not be attacked

4.Bridge mode (default)

This mode will allocate and set IP for each container, and connect the container to a docker0 virtual bridge, through the docker0 bridge and Association between iptables nat table configuration and host

When the Docker process starts, a virtual bridge named docker0 will be created on the host, and the Docker container started on this host will connect to this virtual bridge superior. The virtual bridge works similarly to a physical switch, so that all containers on the host are connected to a layer 2 network through the switch.

Assign an IP from the docker0 subnet to the container, and set the docker0 The IP address is the default gateway of the container. Create a pair of virtual network card veth pair devices on the host. Docker places one end of the veth pair device in the newly created container and names it eth0 (the container's network card), and the other end in the host with a similar name like vethxxx. Name and add this network device to the docker0 bridge. You can view it through the brctl show command

bridge mode is docker’s default network mode. If you do not write the –net parameter, it is bridge mode. When using docker run -p, docker actually makes DNAT rules in iptables to implement the port forwarding function. You can use iptables -t nat -vnL to view

In summary

Host: shares the network namespace/network protocol stack with the host, IP sharing, and port range sharing.

Container: Multiple containers share a network namespaces, multiple containers share a common IP and port range

None: Self-contained space, no network card, no network connection required

Bridge: Bridge, default mode, create a container without specifying a network mode, this mode is used by default, the container is connected to the docker0 bridge through the Veth pair, the bridge assigns an IP to the container, and docker0 is used as the "LAN" content The gateway of the server finally communicates with the host network card. At the same time, the container IP/port is mapped out through IPtables rules for interaction with the host network card

Recommended learning: "docker video tutorial

The above is the detailed content of What are the differences between the four network modes of docker?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to exit the container by docker How to exit the container by docker Apr 15, 2025 pm 12:15 PM

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

How to copy files in docker to outside How to copy files in docker to outside Apr 15, 2025 pm 12:12 PM

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

How to restart docker How to restart docker Apr 15, 2025 pm 12:06 PM

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

How to start mysql by docker How to start mysql by docker Apr 15, 2025 pm 12:09 PM

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

How to update the image of docker How to update the image of docker Apr 15, 2025 pm 12:03 PM

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

How to view the docker process How to view the docker process Apr 15, 2025 am 11:48 AM

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

How to change the docker image source in China How to change the docker image source in China Apr 15, 2025 am 11:30 AM

You can switch to the domestic mirror source. The steps are as follows: 1. Edit the configuration file /etc/docker/daemon.json and add the mirror source address; 2. After saving and exiting, restart the Docker service sudo systemctl restart docker to improve the image download speed and stability.

See all articles