zoukankan      html  css  js  c++  java
  • docker网络

    docker0网络

    docker启动后会自动创建名为docker0的虚拟网桥,功能类似于局域网中的交换机。同时,docker会分配一个本地未使用的虚拟网段,比如172.17.0.0/16,并将第一个ip172.17.0.1作为虚拟网桥的ip。

    rc@rc-virtual-machine:~$ ip addr
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
        link/ether 02:42:c6:e5:c9:f0 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    

    每当创建一个容器的时候,默认使用docker0网络,这时会为其创建一对veth pair接口,用于连接容器和网桥,类似于物理机连接到交换机的网口一样,于是就可以互联互通了。

    自定义网络

    一般用docker-compose部署多个容器的时候,会创建自定义的网络,默认也是网桥类型,在这个网络里面还有dns的功能,可以根据容器名找到对方。下面的docker-compose部署文件就会创建一个默认的自定义网络,redis-web通过域名找到redis-app

    version: "3.4"
    services:
      redis-web:
        image: redis-web:1.0
        container_name: redis-web
        environment:
          REDIS_HOST: redis-app
        ports:
          - 8001:8001
        depends_on:
          - redis-app
      redis-app:
        image: redis:latest
        container_name: redis-app
    

    新建的容器会连接到tmp_default网桥上,这里命名是根据当前所在文件夹的名字命名的,所以最好还是手动指定网络名词,避免冲突。

    rc@rc-virtual-machine:~/tmp$ docker network ls
    NETWORK ID     NAME          DRIVER    SCOPE
    5e2e134bc1e5   bridge        bridge    local
    1e01eb87e5dc   host          host      local
    2c5d99ecc6a1   none          null      local
    fc658398071f   tmp_default   bridge    local
    

    参考资料

  • 相关阅读:
    今天特别忙
    代码重构十
    周末,悠哉的一天
    周六,游戏的一天
    代码重构九
    微信公众号网页上点击放大图片浏览,解决方案
    thinkphp 百度地图Api坐标计算 A坐标距离B坐标多少公里 并按照距离近的排序 坐标排序 外部字段排序
    php 中的关系运算符
    jquery 倒计时
    数组排序,
  • 原文地址:https://www.cnblogs.com/HachikoT/p/15646088.html
Copyright © 2011-2022 走看看