开发者社区> AAAAAAAA> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Docker——网络通信(五)(2)

简介: Docker——网络通信(五)(2)
+关注继续查看

三、两个Tomcat通信的原理分析验证


按照上面的描述,实际上每个container,都会有自己的network namespace,并且是独立的,我们可以进入


到容器中进行验证


第一步:先创建两个容器


docker run -d --name tomcat01 -p 8081:8080 tomcat
docker run -d --name tomcat02 -p 8082:8080 tomcat


image.png


第二步:进入到两个容器中,并且查看ip


docker exec -it tomcat01 ip a
docker exec -it tomcat02 ip a


image.png


image.png


由此就引入了新的问题:

tomcat01和tomcat02属于两个network namespace,是如何能够ping通的?但是这里并不是上述提到的veth-pair技术。


image.png


Tomcat1与Dockers中的网卡 通过veth-pair技术连接,Tomcat2与Dockers中网卡 通过veth-pair技术连接,因为Docker0中的网卡,都在一个网段,类似通过Bridge的方式进行连接。


为什么宿主主机能够Ping通容器?

答:每一个容器都连在同一个网段当中,所以能够Ping通。


为什么容器能够互相Ping通?

答:每一个容器都连在同一个网段当中,所以能够Ping通。


(1)首先安装bridge-utils工具包


yum install bridge-utils


image.png


(2)查看Linux中的网桥


brctl show 


image.png


所以,Tomcat1和Tomcat2在一个网段,并且能够互相Ping通。


image.png


docker network inspect bridge 查看桥接网络的详情


[
    {
        "Name": "bridge",
        "Id": "b15aa1ecc25828e428cfa89a3a33843e112499b5936fc4939336b2548244fd3f",
        "Created": "2021-07-10T04:48:08.630243664+02:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "08e054de3926d6af7e325caed69abe4ee3678cf4ba8e36385d738ae5c6c4d9a7": {
                "Name": "tomcat02",
                "EndpointID": "b1b3ccbd27ccc5c5a8d6c5d757c54c93c31900d7931141c6205301f1cb08b78d",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            },
            "10c78d9117d627c0c572cf86f0b78deb481f4bf33fd9b61f78065ec23572557f": {
                "Name": "tomcat01",
                "EndpointID": "4aae15f702fc518094ebd8bd14fd21931fca0bb7e7b420f864d43ff4013ccf50",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "51fc803bf26776726bc3aaec6c5523b85274b41ce9719bc51f11b06683c29917": {
                "Name": "tomcat03",
                "EndpointID": "8917d37597e376d572d417cc7df4d84ae73c1adc28833d606dacc2bf1bcd78cb",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【云原生Docker篇】Docker的网络模式(下)
一、Docker网络 1.1 Docker网络实现原理 docker 使用linux 桥接,在宿主机虚拟一个docker 容器网桥(docker0) ,docker 启动一个容器时会根据docker 网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。
0 0
【云原生Docker篇】Docker的网络模式(上)
一、Docker网络 1.1 Docker网络实现原理 docker 使用linux 桥接,在宿主机虚拟一个docker 容器网桥(docker0) ,docker 启动一个容器时会根据docker 网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。
0 0
【云原生Docker系列第三篇】Docker网络模式(在失去的所有人里,我最怀念自己 )
【云原生Docker系列第三篇】Docker网络模式(在失去的所有人里,我最怀念自己 )
0 0
【Docker网络】容器之间的网络是如何连通的?
【Docker网络】容器之间的网络是如何连通的?
0 0
【Docker】企业进阶实战Docker网络【太神奇啦】
【Docker】企业进阶实战Docker网络【太神奇啦】
0 0
Docker 默认网络|学习笔记
快速学习 Docker 默认网络
0 0
【Docker】docker网络—bridge网桥网络详悉
【Docker】docker网络—bridge网桥网络详悉
0 0
【云原生-K8s】kubeadm搭建k8s集群1.25版本完整教程【docker、网络插件calico、中间层cri-docker】
【云原生-K8s】kubeadm搭建k8s集群1.25版本完整教程【docker、网络插件calico、中间层cri-docker】
0 0
【docker】网络模式/数据卷挂载/资源分配管理
文章目录 前言 一、网络 1.1 概念 1.2 网络模式
0 0
docker网络和docker compose
docker网络和docker compose
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Docker 网络深度解读
立即下载
Docker 镜像原理和最佳实践
立即下载
我的Docker:Docker插件机制详解
立即下载