Operation and Maintenance
Docker
What are the differences between the four network modes of 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.

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

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!
Docker: Containerizing Applications for Portability and ScalabilityApr 16, 2025 am 12:09 AMDocker is a Linux container technology-based tool used to package, distribute and run applications to improve application portability and scalability. 1) Dockerbuild and dockerrun commands can be used to build and run Docker containers. 2) DockerCompose is used to define and run multi-container Docker applications to simplify microservice management. 3) Using multi-stage construction can optimize the image size and improve the application startup speed. 4) Viewing container logs is an effective way to debug container problems.
How to start containers by dockerApr 15, 2025 pm 12:27 PMDocker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".
How to view logs from dockerApr 15, 2025 pm 12:24 PMThe methods to view Docker logs include: using the docker logs command, for example: docker logs CONTAINER_NAME Use the docker exec command to run /bin/sh and view the log file, for example: docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log Use the docker-compose logs command of Docker Compose, for example: docker-compose -f docker-com
How to check the name of the docker containerApr 15, 2025 pm 12:21 PMYou 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 create containers for dockerApr 15, 2025 pm 12:18 PMCreate a container in Docker: 1. Pull the image: docker pull [mirror name] 2. Create a container: docker run [Options] [mirror name] [Command] 3. Start the container: docker start [Container name]
How to exit the container by dockerApr 15, 2025 pm 12:15 PMFour 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 outsideApr 15, 2025 pm 12:12 PMMethods 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 start mysql by dockerApr 15, 2025 pm 12:09 PMThe 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


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Chinese version
Chinese version, very easy to use

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SublimeText3 English version
Recommended: Win version, supports code prompts!

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),






