欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker的四种网络方式

程序员文章站 2024-01-28 22:01:10
...

docker网络配置

docker的四种网络方式

当 Docker daemon 启动时需要做以下操作:

  • creates the docker0 bridge if not present
  • searches for an IP address range which doesn’t overlap with an existing route
  • picks an IP in the selected range
  • assigns this IP to the docker0 bridge

docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:

  • bridge模式:使用–net =bridge指定,默认设置;
  • host模式:使用–net =host指定;
  • none模式:使用–net =none指定;
  • container模式:使用–net =container:NAMEorID指定。

1.bridge模式
docker的四种网络方式
bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将并将一个主机上的Docker容器连接到一个虚拟网桥上。Docker 在启动时会创建一个虚拟网桥 docker0,默认地址为 172.17.0.1/16, 容器启动后都会被桥接到 docker0 上,并自动分配到一个 IP 地址。
docker的四种网络方式


[root@18 ns]# brctl show docker0
bridge name bridge id       STP enabled interfaces
docker0     8000.0242813049e4   no      veth81deaa7
                            vethc7fa207
[root@18 Desktop]# docker run -it --rm --name vm1 ubuntu bash

[root@18 ns]# brctl show docker0
bridge name bridge id       STP enabled interfaces
docker0     8000.0242813049e4   no      veth81deaa7

2.host模式
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
3.none模式
在none模式下,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
使用–net =none模式启动容器:
4.container模式
这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。
使用–net =container模式启动容器: