• Docker-自定义网络


    创建容器默认使用docker0网络,我们创建一个自定义网络

    docker0的特点是容器之间只能通过ip访问,不能通过容器名访问,除非使用--link。自定义网络可以通过容器名访问

    网络模式:

    • bridge:使用桥接方式连接网络(默认)
    • none:不配置网络
    • host:和主机共享网络
    • container:容器内联通(用得少,局限大)

      

    当我们启动容器时,如果不指定网络,默认使用bridge,也就是docker0

    docker run -id busybox  
    相当于: docker run
    -id --net bridge busybox

    查看docker网络相关命令:

    docker network --help

    列出所有网络;

    docker network ls

    创建网络:

    docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet    # 创建名为mynet的网络,使用桥接模式,子网掩码是192.168.0.0/16,网关是192.168.0.1

    移除网络:

    docker network rm 网络名

    查看网络详细信息:

    docker network inspect mynet

     创建使用mynet的容器busy1-mynet、busy2-mynet

    docker run -id --name busy1-mynet --net mynet --rm busybox
    docker run -id --name busy2-mynet --net mynet --rm busybox

    创建使用默认网络docker0的容器busy1、busy2

    docker run -id --name busy1 --rm busybox
    docker run -id --name busy2 --rm busybox

    busy1-mynet和busy2-mynet之间可以通过容器名互相ping通:

    docker exec -it busy1-mynet ping busy2-mynet

    网络连通:连接一个容器到一个网络

    但是busy1-mynet和busy1不能通过ip、容器名ping通,因为他们的网段不同。此时需要用connect命令,连接一个容器到一个网络

    docker network connect mynet busy1        #将容器busy1连接到网络mynet上。busy1容器此时会有两个IP

    #此时mynet网络中的容器就可以连接busy1容器了

      docker exec -it busy1-mynet1 ping busy1

  • 相关阅读:
    关于HDFS默认block块大小
    从计算框架MapReduce看Hadoop1.0和2.0的区别
    Linux的作业管理
    php 随机密码和盐 来自wordpress
    SSH管理(重启 停止 运行 安装)centos7
    卸载iptables 小心了!!怎么关闭和卸载iptables
    mysqld: Out of memory 解决办法(mysql)
    ie6 ie7 ie8 ie9兼容问题终极解决方案
    call_user_func()的参数不能为引用传递 自定义替代方法
    centos 域名硬解析(linux)
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/12163307.html
Copyright © 2020-2023  润新知