企业—Docker容器之docker网络

一.Docker网络模式

  • docker的镜像是令人称道的地方,但网络功能还是相对薄弱的部分。

  • docker安装后会自动创建3种网络:bridge、host、none

  • 可以使用以下命令查看:
    在这里插入图片描述

二.基本网路配置

bridge:

docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器会自动桥接到这个接口。
在这里插入图片描述
如果不指定网络的话默认为bridge默认桥接:

  • 在容器中查看网络,会生成ip,容器与宿主机之间的连接就相当于网线,其中显示的16表示网线的一端,同时在宿主机上查看时会显示另一端:

在这里插入图片描述

  • 在宿主机中查看网络并且查看网桥:
    在这里插入图片描述
    在这里插入图片描述

  • 在宿主机上查看docker容器网络产生的进程
    在这里插入图片描述
    host:

  • host网络模式需要在容器创建时指–network=host

  • host模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。
    在这里插入图片描述
    1.运行容器指定为host网络类型,并且查看网络与宿主机相同
    在这里插入图片描述
    none:

  • none模式是指禁用网络功能,只有lo接口,在容器创建时使用–network=none指定。

1.运行容器指定网络方式为none并且查看
在这里插入图片描述
container:

  • Container 网络模式是 Docker 中一种较为特别的网络的模式。在容器创建–network=container:vm1指定。(vm1指定的是运行的容器名)
  • 处于这个模式下的 Docker 容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速信。
    在这里插入图片描述
    1.使用container模式运行容器并且查看网络
    在这里插入图片描述
    2.运行新的容器与container的网络模式下的数据库进行连接
    在这里插入图片描述

三.高级网络配置

自定义网络模式,docker提供了三种自定义网络驱动:

  • bridge
  • overlay
  • macvlan

bridge驱动类似默认的bridge网络模式,但增加了一些新的功能,overlay和macvlan是用于创建跨主机网络。

建议使用自定义的网络来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址。

1.创建自定义网桥
在这里插入图片描述
在这里插入图片描述
2.以自定义网桥运行容器,并测试
在这里插入图片描述
3.以自定义网桥再运行容器查看自定义网桥运行的俩个容器是否能ping通
在这里插入图片描述
docker容器之间的互连:

4.还可以自己定义网段:

  • 在创建时指定参数:–subnet 、–gateway

//创建自定义网络,指定网段及其网关
在这里插入图片描述
//使用自定义的网络运行容器,并且查看网络

使用–ip参数可以指定容器ip地址,但必须是在自定义网桥上,默认的bridge模式不支持,同一网桥上的容器是可以互通的。
在这里插入图片描述

docker在设计上就是要隔离不同network的,那么如何使两个不同网桥的容器通信呢:

使用 docker network connect命令为vm1添加一块my_net2 的网卡。
并且进入容器进行测试:
在这里插入图片描述
发现俩个容器时互通的

外网如何访问容器:

  • 端口映射
  • -p 选项指定映射端口
    在这里插入图片描述
  • 外网访问容器用到了docker-proxy和iptables DNAT
  • 宿主机访问本机容器使用的是iptables DNAT
  • 外部主机访问容器或容器之间的访问是docker-proxy实现

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值