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

    还是补充,哈哈
    如何干掉当前所有运行中的容器
    docker rm -f $(docker ps -aq)

    网络基础

    输入命令:
    ip addr
    你的docker有容器在运行时是七八个网卡信息
    当把所有docker容器干掉之后,再输入命令查看网卡信息
    发现只剩下五个网卡信息了
    结论:每运行一个容器都会生成一个网卡
    明天继续

    –link

    不需要用ip直接用容器名(服务名)ping

    docker exec -it tomcat02 ping tomcat01
    上面的无法ping通!

    docker run -d -P --name tomcat03 --link tomcat02 tomcat
    docker exec -it tomcat03 ping tomcat02
    此时就可以ping同通

    原理:

    docker exec -it tomcat03 cat /etc/hosts
    总结:
    –-link就是在hosts配置中增加一个映射

    Docker基于bridge网络实现互通

    查看docker中的网络信息(docker默认的网络连接三种方式)
    docker network ls
    bridge:桥接模式(默认)
    none:不配置网络
    host:和宿主机共享网络
    container:容器网络连通(用的少,局限大)
    bridge桥接容器:
    docker run -itd --name host1 --net bridge busybox
    docker0特点:默认,域名不能访问,--link可以打通
    自定义一个网络:
    docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
    解释:docker network create 桥接的网络模式 子网 网关 名称
    运行一个容器:
    docker run -d -P --name host03 --net mynet host01
    测试是否可以ping通(可以)
    docker exec -it host03 ping host01

    网络连通

    docker exec -it conect mynet host01
    不同网络下的容器也能相互连通,host01是其他网络下的容器

    Docker底层实现和网络实现

    Docker 底层的核心技术包括 Linux 上的名字空间(Namespaces)、控制组(Control groups)、Union 文

    件系统(Union file systems)和容器格式(Container format)。

    Docker 的网络实现其实就是利用了 Linux 上的网络名字空间和虚拟网络设备(特别是 veth pair)。
    一张图解释:

    越是无知的人越是觉得自己无所不知(之前的自己) 越是学习的人越是觉得自己会的太少了(现在的自己) 共勉
  • 相关阅读:
    观察者模式学习--使用jdk的工具类简单实现
    观察者模式的初始学习--自己实现
    反射 reflect 初始学习
    eclipse java 空心J文件的回复
    linux 命令 more
    spring 3 的 @value的使用
    linux rm 命令
    linux log find 查询
    Resource is out of sync with the file system
    JavaScript(七)数组
  • 原文地址:https://www.cnblogs.com/humblexwang/p/15764965.html
Copyright © 2011-2022 走看看