• Docker 网络


    Docker 网络

    docker网络

    我们来探讨一个dockernetwork的问题。小伙伴们请看如下命令:

    docker run -d -p8080:8080 镜像ID
    

    -p8080:8080这个命令的意思就是将容器的8080端口映射到宿主机的8080端口,这个是我们手动指定的网络端口映射

    场景

    假如目前我们有很多的容器实例,微服务群,各个服务之间都有相互调用、访问,实现容器互联。那么我们需要做什么?

    新建docker网络

    我们需要创建一个网络环境,让需要相互访问的服务容器实例都加入到这个网络环境中,这样就可以实现,相互访问调用。

    执行如下命令(创建一个docker网络环境):

    # 创建docker网络,网络模式设置为bridge 网络名称为my-network
    docker network create -d bridge my-network
    

    docker网络模式说明:

    none模式:docker容器拥有自己的network namespace,但是不创建任何网络设备,仅有lo网络,即为封闭式容器。使用--network none指定

    bridge模式:docker安装后会默认启用的网络,并创建docker0网桥作为网关,使用此网络创建的容器会生成一对以veth开头的虚拟网卡,一半在容器中,一半在docker0桥上,此方式实现了容器与宿主机间的通信。docker0桥是NAT桥,因此容器获得的是私有网络地址,可将容器想象为主机NAT服务背后的主机,如果开发容器或其上的服务为外部网络访问,需要在宿主机上为其定义DNAT规则.使用--network bridge指定

    host模式:共享宿主机的网络名称空间,容器不会虚拟自己的网卡设备及ip地址,而直接使用宿主机的ip地址与外部进行通信,且不需要任何NAT转换。使用--network host指定

    查看docker网络

    可以看到,除了docker安装时创建的三个网络,还有一个新的网络,就是我们刚那个创建的那个网络。

    加入网络

    我们来启动俩个容器,并且,将俩个容器加入到my-network网络环境中。

    # 启动第一个容器
    docker run -itd --name docker01 --network my-network springboot-docker/springboot-docker:1.0 /bin/bash 
    # 启动第二个容器
    docker run -itd --name docker02 --network my-network springboot-docker/springboot-docker:1.0 /bin/bash 
    

    下图可知,执行docker ps,可以看到现在俩个容器已经运行起来了

    验证网络

    我们分别进入到俩个容器中,ping对方,验证是否网络畅通

    # 进入到容器 docker01
    docker exec -it docker01 /bin/bash
    

    这样就进入到了docker01容器中,执行命令ping docker02,可以看到网络是通的。

    同理,进入到第二个容器中,用同样的命令测试。在这里有的小伙伴可能会遇到一个问题,在执行ping docker01的时候报错,告诉你没有这个命令,这时需要我们自己下载ping命令,执行如下俩条命令即可:

    # 更新
    apt-get update
    # 安装
    apt install iputils-ping
    

    小结

    好了,小伙伴们,我们简单的了解了docker的网络,现实的情况如果我们有成千上万个容器需要相互连通,这样的手动配置肯定是不行的,所以我们会用到docker-compose技术来进行服务的编配,后续,会和小伙伴们来讨论docker-compose怎么实现服务的编排。

  • 相关阅读:
    【持续更新】Android 源码下载地点
    android Notification 的使用
    如何设置 Notification 中PendingIntent 的 Intent
    CodeSmith部分类型转换代码
    【转】Request.ServerVariables参考
    ADT
    根据IP从纯真IP数据库查询地址
    VS2008重置默认环境
    Eclipse 安装SVN插件
    C#序列化JSON对象
  • 原文地址:https://www.cnblogs.com/triumph-wyp-com/p/13417666.html
Copyright © 2020-2023  润新知