• 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)。
    一张图解释:

    越是无知的人越是觉得自己无所不知(之前的自己) 越是学习的人越是觉得自己会的太少了(现在的自己) 共勉
  • 相关阅读:
    【工作感悟】2022年8月23日
    [Anaconda]查看anaconda的方法
    [MACOS]BOOKS
    Mac_每次都要执行source ~/.bash_profile 配置的环境变量才生效
    [Anaconda]查看当前已经激活的anaconda的方法
    解决:DeprecationWarning: executable_path has been deprecated, please pass in a Service object
    [BREW]如何在MAC上安装Consolas
    20220917
    对net5.0的理解
    如何做到高效CI/CD
  • 原文地址:https://www.cnblogs.com/humblexwang/p/15764965.html
Copyright © 2020-2023  润新知