首页 > java > docker的网络模式

docker的网络模式

作者:bin

docker的常用网络模式
None网络:这种网络模式下容器只有lo回环网络,没有其他网卡。none网络可以在容器创建时通过 –network=none 来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

Host网络: 通过命令–network=host 指定,使用host模式的容器可以直接使用docker host的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。

bridge网络:容器的默认网络模式,新建的容器未指定网络模式都会挂在bridge0下面,挂在相同的bridge下的容器可以相互访问,并且容器间可以通过容器名称直接访问,无需指定容器的ip(例如ip可能会在变,名称固定)

1、容器或应用在一台宿主机上,容器互相访问
运行2个容器

docker run -itd --name=container_a alpine:3.9.4
docker run -itd --name=container_b alpine:3.9.4

这两个容器都运行在bridge0下,可以相互访问,我们为他们换一个bridge网络,先新建一个网络

docker network create bridge-a

然后链接网络

docker network connect bridge-a container-a
docker network connect bridge-a container-b

如此就可以互相访问了,如果要断开链接:

docker network disconnect bridge-a container-a

2、容器或应用在一台宿主机上,容器与宿主机器都其它应用访问
本机都应用间可以用127.0.0.1或者localhost加端口进行访问,但是本机的docker内的应用和本机的应用就不行了。
我们可以使用docker当前网络的GateWay的ip,就可以访问到宿主主机的应用了,我们可以用如下命令查看:

docker inspect bridge-b

找到里面的ip:

NetWork/bridge-b/GateWay

3、容器或应用不在一台宿主机上,容器互相访问
这个没啥好说的, 借助宿主的网络,进行端口映射访问

您必须 [ 登录 ] 才能发表留言!