docker网络

一、docker的网络模式:

1.桥接模式:是docker的默认模式,当我们部署好docker服务,启动之后就会创建一个虚拟网桥就是docker0,这是一个虚拟的网络设备,类似于交换机,每一次运行容器之后,docker0就会从网段当中分配一个IP地址给这个容器,容器与主机之间通信是通信桥接模式进行,容器与容器之间通信是多个容器都在同一网段,都在同一网桥,可以通过自己的IP地址进行通信。

2.桥接模式是什么:就是转发mac地址。就是连接两个不同网络段的设备,它们之间可以共享通信的方式,桥接模式靠路由器连接,通过mac地址进行转发数据帧。172.17----路由器----192.168,桥接设备查看目标mac地址,如果在mac地址表内,桥接设备直接把数据帧转发目标的响应接口,如果mac不再地址表内,则通过ARP广播所有接口都会收到数据报文,有则响应,无则丢弃。

3.桥接模式:在物理和数据链路层上工作,学习和转发mac地址,用于局域网内部的连接和扩展。     veth 方式生成一个对应容器的虚拟网卡。

   docker网桥是宿主机虚拟出来的,并不是真正的网络设备,外部设备是没办法通过寻址找到的,也是客户端是无法直接访问容器的IP地址;如果希望外部网络能够访问docker,要通过映射容器的端口到宿主机。

4.桥接模式的宿主机和容器之间的端口映射,实际上是通过Dnat地址转换,容器的私有IP映射到主机的IP上;从而实现容器与外网的通信,影藏了容器内部的真实IP地址

5.docker基于桥接模式的网络类型:

<1>.host模式:容器不会虚拟出自己的网卡,也不会配置自己的IP,容器全部使用宿主机的IP和端口;端口不重复的类型的应用,docker本身是单节点模式,使用与部署单个服务的应用程序。

创建host模式:它没有IP地址和端口,都用宿主机的IP和端口,访问host模式容器只需要访问主机IP即可,所以在一个镜像当中创建两个host模式容器时,后者的端口将会被占用,无法启动及访问。

<2>.container模式:容器和容器之间共用一个network namespace不是宿主机共享;新创建的容器也不会有自己的网卡和ip;而是和一个容器共享ip,端口。除了网路network之外,其他的比如文件系统等等都是隔离。

先创建容器test1

再创建新的容器test2,通过test1共享IP和端口

通过容器的进程号查看结果,除了两个容器的net相同(就是IP和网卡相同),其它的都不同。

<3>.none模式:docker创建容器之后,容器就有自己的网络命名空间,但是不会进行任何的网络配置,没有网卡、IP、端口,只有本地的lo的回环网络,没办法进行连网,网络是封闭的,一般用于内部调试。

<4>.自定义网络模式:和桥接模式一样,只不过我们可以自定义容器的网段和给新创建的容器指定IP地址;只有自定义网络可以在创建容器的时候指定IP地址。

查看网络类型 

创建自定义网络

指定网卡名称

给容器指定IP地址

-p指定端口:左边是宿主机端口右边为容器端口

6、总结

1)docker的网络模式默认就是桥接模式

2)桥接模式的四种类型:

    host 宿主机共享网络 常用
    container模式 容器之间共享
    none模式 无网络模式,单机模式
   自定义网路 只有自定义网络可以在创建容器的时候指定ip地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值