Docker网络

  • Post author:
  • Post category:其他


从docker的架构和运行流程来看,Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。


Docker运行的基本流程为:

1.用户是使用Docker Client 与 Docker Daemon建立通信,并发送请求给后者。

2.Docker Daemon 作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求。

3.Docker Engine 执行Docker内部的一系列工作,每一项工作都是一个Job形式得存在。

4.Job得运行过程中,当需要容器镜像时,则从Docker Registry 中下载镜像,并通过镜像管理驱动Graph将下载的驱动以Graph的形式存储。

5.当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境。

6.当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Execdriver来完成。

7.Libcontainer是一项独立的容器管理包,Network driver以及Execdriver 都是通过Libcontainer来实现具体对容器的操作。

我们安装和运行docker后,运行

ifconfig

命令查看一下网络,会产生一个名为docker0的虚拟网桥:

在这里插入图片描述

我们查看一下docker网络模式:

docker network ls 

在这里插入图片描述

docker会默认创建3大网络模式。

下面来学习一下

docker network的常用命令

在这里插入图片描述

命令不多,就那么几个。


查看网络的命令

docker network ls


查看网络数据源的命令:

docker network inspect xxx网络名称


删除网络的命令:

docker network rm xxx网络名称

案例:

在这里插入图片描述

好的,上面了解过docker的一些常用命令后,接下来就来看看docker network 能干什么?

所有网络的访问,要在同一网段。如果要做docker网络管理和容器调用之间的规划、容器间的互联和通信以及端口映射,就涉及到docker network的知识了。


网络模式


在这里插入图片描述

none和container几乎不会用,主要使用前两种。

在这里插入图片描述


容器实例内默认网络IP的生产规则:

  1. 先启动两个ubuntu容器实例

    在这里插入图片描述

  2. docker inspect 容器ID or 容器名字

    在这里插入图片描述

    上面可以知道,目前的网络属于桥接网络,网关是127.0.0.1 ,u1的IP是127.0.0.2,u2的IP是127.0.0.3。

  3. 关闭u2实例,新建u3,查看ip变化

    在这里插入图片描述

    会发现u3的IP是127.0.0.3,这个地址不是之前u2的吗,居然变成了u3的IP地址。这说明了docker容器内部的IP是有可能发生改变的。


bridge模式


Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

网桥docker0创建一对对等虚拟设备接口,一个叫veth,另一个叫eth0,成对匹配。

在这里插入图片描述

查看 bridge 网络的详细信息,并通过 grep 获取名称项

docker network inspect bridge | grep name

在这里插入图片描述

ifconfig | grep docker

在这里插入图片描述


host模式


直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换。他的网络就和主机的eth0(ens33)在同一个网络了。

在这里插入图片描述

问题:

 docke启动时总是遇见标题中的警告

原因:

docker启动时指定--network=host或-net=host,如果还指定了-p映射端口,那这个时候就会有此警告,

并且通过-p设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。

解决:

解决的办法就是使用docker的其他网络模式,例如--network=bridge,这样就可以解决问题,或者不指定端口映射,又或者直接无视。。O(∩_∩)O哈哈~



版权声明:本文为weixin_50216991原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。