Docker网络模式与设置Docker自界说网络(bridge模式(2)

其实启动docker处事之后,可以利用docker network相关呼吁节制打点网络,下面我们查察一下网络列表:(默认存在下面三个)下面逐一先容(团结第一小节的内容来领略docker 中的网络道理)

[root@localhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 3763f78eb404 bridge bridge local 3bb2f50eb211 host host local e12cd7b98c54 none null local 2.2.1host模式

host模式团结VMware中的仅主机模式即可领略,通过下图暗示一下:

docker网络模式、一边排障一边设置docker自界说网络(bridge模式)

从上图可以看出,假如在启动容器后利用的是host模式,那么这个容器将不会得到一个独立的Network Namespace(网络定名空间),而是和宿主机系统共用一个Network Namespace。而且这就意味着容器将不会虚拟出本身的网卡以及设置本身的ip等,而是利用宿主机的ip以及端口。不外呢,在其他方面譬喻文件系统等照旧与之断绝的。

这种方法最大优势在于网络机能较量好可是缺点也很明明——网络的断绝性很弱。

2.2.2container模式

​ 这个模式正如上述表格中的说明一般,是暗示指定新建设的容器和已经存在的一个容器共享一个Network Namespace。虽然这也暗示新建的这个容器不会建设本身的网卡等相关操纵,而是和与指定的容器共享这些资源。

​ 这种模式也和上述的host差不多,除了网络方面,其文件系统、历程列表等都是断绝的。

参照下图:

docker网络模式、一边排障一边设置docker自界说网络(bridge模式)

2.2.3none模式

​ 利用none模式,Docker容器拥有本身的Network Namespace,可是,不会对Docker容器举办任何的网络设置。这就表白这个Docker容器没有网卡、IP、路由等信息。需要我们本身为Docker容器添加网卡、设置IP等。这种方法网络的断绝性最为彻底,即表白封锁了容器的网络成果,也无法会见这个容器。

示意图如下:

docker网络模式、一边排障一边设置docker自界说网络(bridge模式)

2.2.4bridge模式

​ 该模式就是我们在启动docker处过后默认的docker网络模式,其会在主机上建设一个名为docker0的虚拟网桥,这个主机上的所有启动的容器就会毗连到这个虚拟网桥上。团结VMware中网桥模式道理,想想物理互换机的道理,就不难领略了。

​ 从docker0子网中分派一个IP给容器利用,并配置docker0的IP地点为容器的默认网关。在主机上建设一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新建设的容器中(这个veth对我们在OpenStack中见过,笔者以为可以将之领略为一个桥梁,成立桥两岸的干系而存在的一种虚拟设备),并定名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样雷同的名字定名,并将这个网络设备插手到docker0网桥中。

​ 利用docker run -p 呼吁时,docker实际是在防火墙做了DNAT法则,实现端口转发的成果。

下面通过一个节点的处事器布局图来领略:

docker网络模式、一边排障一边设置docker自界说网络(bridge模式)

虽然,这四种模式都不需要手动设置,真正需要设置的是自界说网络。

三、docker网络节制相关呼吁设置

上面已经给出了对应docker网络节制的呼吁docker network,下面详细看一下这个呼吁的详细说明:

docker network的呼吁用法: Usage: docker network COMMAND Manage networks Commands: connect Connect a container to a network create Create a network disconnect Disconnect a container from a network inspect Display detailed information on one or more networks ls List networks prune Remove all unused networks rm Remove one or more networks 3.1桥接呼吁配置

我们通过实验、排错和验证的方法来设置docker网络。

因为需要NAT地点转换成果,所以需要开启防火墙,可是焦点防护照旧关了吧。

[root@localhost ~]# systemctl start firewalld.service [root@localhost ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since 一 2020-04-06 10:18:40 CST; 2s ago Docs: man:firewalld(1) Main PID: 65611 (firewalld) ...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjzj.html