Docker 网络

作者: SkTj | 来源:发表于2019-10-28 14:28 被阅读0次

    下载pipework来管理容器网络

    git clone https://github.com/jpetazzo/pipework
    cp ./pipework/pipework /usr/local/bin/

    用pipework来设置网桥br0 ,并分配给容器test01

    docker run -itd --name test01 --network none busybox
    pipework br0 test01 172.18.18.36/24@172.18.18.1

    1、查看网络
    docker network ls
    2、设置容器的网络为none
    docker run -it --net=none xx /bin/bash
    3、设置和主机共用网络
    docker run -it --net=host busybox /bin/bash
    4、设置容器特权
    --privileged=true
    5、启动容器的时候设置容器主机名
    -h cook

    6、修改docker的默认容器配置


    image.png

    7、允许docker ping所有容器
    sudo iptables -A DOCKER -p icmp --icmp-type echo-request -j ACCEPT
    sudo iptables -A DOCKER -p icmp --icmp-type echo-reply -j ACCEPT

    8、自定义网桥
    yum install -y bridge-utils
    docker network create --driver bridge --subnet=172.30.0.0/16 br01s
    docker run -itd --net=br01s --name test03 busybox


    Docker默认的网络驱动

    <meta charset="utf-8">
    1、桥接网络模式(bridge):这是docker默认的网络驱动程序,如果在创建驱动程序时未指定驱动程序类型,默认便是bridge模式。当你的应用程序是在同一个主机部署独立容器时,推荐使用桥接网络模式。连接到同一桥接网络的容器可以互相通信,对不同桥接网络的容器则无法直接相互通信。
    2、覆盖网络模式(overlay)****:覆盖网络模式可以将不同的Dockerd守护进程连接在一起,该网络模式支持集群容器之间相互通信,以及集群和某个单机版独立容器直接相互通信,或不同Dockerd守护进程的独立容器之间进行通信。该网络模式使用场景比较广泛,通常集群部署时会使用该模式。
    3、主机网络模式(host):如果某个容器需要访问主机的某个服务,那么需要配置主机网络模式,该模式直接占用主机的网络端口和网卡资源。也就是说docker网络并非隔离而是直接和宿主机共享资源,就好像应用是直接在宿主机上运行一样。但是其它(例如存储,进程命名空间和用户命名空间)相对宿主机隔离的。该模式仅适用于Docker 17.06及更高版本的swarm服务。
    4、MAC网络模式(macvlan):Macvlan网络允许您为容器分配MAC地址,使其显示为网络上的物理设备。Docker守护程序通过其MAC地址将流量路由到容器。macvlan 使用场景在于如果希望直接连接到物理网络时,使用驱动程序有时是最佳选择,而不是通过Docker宿主机的网络堆栈进行路由。
    **5、禁用网络模式(none): **禁用容器所有网络。通常与自定义网络驱动程序一起使用。none不适用于群组服务。

    容器间怎么通信##########################

    不同IP间通信(加入统一网桥)

    image.png

    容器间用DNS通信(默认的网桥bridge不支持,其他可以)

    image.png

    容器间共享网络joined

    image.png

    相关文章

      网友评论

        本文标题:Docker 网络

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