美文网首页
docker容器学习--------网络管理+容器间互连

docker容器学习--------网络管理+容器间互连

作者: ivan_cq | 来源:发表于2018-11-19 18:02 被阅读0次

    容器的四种网络模式:
    bridge桥接模式、host模式、container模式和none模式,启动容器的时候可以使用 --net 参数指定,默认是桥接模式


    网络的基本管理



    桥接模式:
    默认的一种模式。


    Host网络模式:

    host 模式是 bridge 桥接模式很好的补充。采用 host 模式的 Docker Container,可以直接使用
    宿主机的 IP 地址与外界进行通信,若宿主机的 eth0 是一个公有 IP,那么容器也拥有这个公
    有 IP。同时容器内服务的端口也可以使用宿主机的端口,无需额外进行 NAT 转换。当然,
    有这样的方便,肯定会损失部分其他的特性,最明显的是 Docker Container 网络环境隔离性
    的弱化,即容器不再拥有隔离、独立的网络栈。另外,使用 host 模式的 Docker Container 虽
    然可以让容器内部的服务和传统情况无差别、无改造的使用,但是由于网络隔离性的弱
    化,该容器会与宿主机共享竞争网络栈的使用;另外,容器内部将不再拥有所有的端口资
    源,原因是部分端口资源已经被宿主机本身的服务占用,还有部分端口已经用以 bridge 网
    络模式容器的端口映射。

    container网络模式



    None网络模式

    网络环境为 none,即不为 Docker Container 任何的网络环境。一旦 Docker Container 采用了
    none 网络模式,那么容器内部就只能使用 loopback 网络设备,不会再有其他的网络资源。
    可以说 none 模式为 Docker Container 做了极少的网络设定,但是俗话说得好“少即是多”
    在没有网络配置的情况下,作为 Docker 开发者,才能在这基础做其他无限多可能的网络定制开发。
    这也恰巧体现了 Docker 设计理念的开放。在 none 网络模式下分配固定 ip:
    netns 是在 linux 中提供网络虚拟化的一个项目,使用 netns 网络空间虚拟化可以在本地虚拟
    化出多个网络环境,目前 netns 在 lxc 容器中被用来为容器提供网络。
    使用 netns 创建的网络空间独立于当前系统的网络空间,其中的网络设备以及 iptables 规则
    等都是独立的,就好像进入了另外一个网络一样。


    创建网络环境删除网络环境



    制作软链接,创建一个网络环境


    [root@server1 netns]# ip link add name veth0 type veth peer name veth1
    这里我们添加了一对veth设备,veth设备是成对出现的,两个设备之间的数据是相互贯通的


    [root@server1 netns]# brctl addif docker0 veth0
    添加桥接

    查看设备状态为DOWN激活设备


    [root@server1 netns]# ip link set veth1 netns 18295 将eth1加入到创建的网络空间,此时在宿主机里已经找不到ethnic
    的信息了
    [root@server1 netns]# ip netns exec 18295 ip link set veth1 name eth0 给容器设置新的网卡
    [root@server1 netns]# ip netns exec 18295 ip link set up dev eth0 开启eth0
    [root@server1 netns]# ip netns exec 18295 ip addr add 172.17.0.100/24 dev eth0 设置ip
    [root@server1 netns]# ip netns exec 18295 ip route add default via 172.17.0.1 设置网关

    宿主机里面找不到veth1了

    容器间互连

    --link 参数可以在不映射端口的前提下为两个容器间建立安全连接, --link 参数可以连接一个
    或多个容器到将要创建的容器。
    --link 参数的格式为 --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连
    接的别名。

    相关文章

      网友评论

          本文标题:docker容器学习--------网络管理+容器间互连

          本文链接:https://www.haomeiwen.com/subject/fxjafqtx.html