美文网首页
Docker-Network网络篇

Docker-Network网络篇

作者: 任重而道元 | 来源:发表于2017-09-18 22:47 被阅读132次

    前后网络配置对比

    使用命令 ifconfig查看网络配置。

    1.安装docker服务之前的网络配置

    开始的网络配置

    2.安装docker服务之后的网络配置

    安装docker之后的网络配置

    docker支持的网络模式

    Docker运行容器时,一个常见的问题是:localhost(127.0.0.1)指向哪里??

    • bridge(默认)
    • host
    • container
    • network-name
    • none

    1.桥接 bridge

    Docker 默认的网络模式是 bridge 。在该模式下,docker 创建了一个 bridge,名称通常为 docker0,如下 。

    • inet 192.168.0.1

    • netmask 255.255.240.0

    • broadcast 0.0.0.0

    docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.0.1  netmask 255.255.240.0  broadcast 0.0.0.0
    ether 02:42:1a:07:e3:b5  txqueuelen 0  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    通信过程如下所示,容器内的localhost指向容器内部。

    bridge模式

    2.本机 host

    当使用 --net=host 启动容器时,网络配置为 host 模式。该模式下,容器和宿主机共享网络。形象地讲,容器和宿主机共享一个网卡,在容器内的网络访问如同直接在宿主机上操作一样,容器内的localhost指向宿主机。

    host模式

    3.container

    Docker可以指定一个容器复用另一个容器的网络设置。这种模式适用于由多个容器搭建整套系统的情况,例如搭建PHP开发环境时,希望Mysql、Redis都使用PHP容器的网络配置,即可以使用该模式。

    4.network-name

    Docker允许用户使用Docker network driver或 第三方network driver插件 创建自定义网络,然后多个容器都可以使用相同的网络。常见的第三方etwork driver插件有:Contiv NetworkingKuryr Network PluginWeave Network Plugin

    5.none

    顾名思义,该模式下没有网络连接。例如我的宿主机ip为192.168.0.59,在容器内访问宿主机就提示无网络。

    docker run -it --net=none my_ubuntu bash
    root@6533968160dd:/# ping 192.168.0.59
    connect: Network is unreachable
    

    相关文章

      网友评论

          本文标题:Docker-Network网络篇

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