当前位置: 首页 > news >正文

解决docker容器之间网络互通

docker容器之间相互访问


1.查看当前的网络

Copy
[root@host ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3dd4643bb158        bridge              bridge              local
748b765aca52        host                host                local
4d59a0cd3ff4        none                null                local
2.创建一个bridge的网络(如不加参数,默认创建的就是bridge类型的网络)

Copy
[root@host ~]# docker network create my_net
a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649
[root@host ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3dd4643bb158        bridge              bridge              local
748b765aca52        host                host                local
a80ae06b6591        my_net              bridge              local
4d59a0cd3ff4        none                null                local
3.查看该网络的详细信息

Copy
[root@host ~]# docker network inspect my_net
[
    {
        "Name": "my_net",
        "Id": "a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1/16"
                }
            ]
        },
        "Internal": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
4.启动容器时指定网络

注:需要使用–name为容器指定一个名字

Copy
[root@host ~]# docker run --name boot1 -d --network my_net bbacc5de5941
7ca3834887355e3ecb4a2ae484694c2dbc0944f12e23498fd4b03237c4c35632
5.将已启动的应用连接至网络

注:需要使用–name为容器指定一个名字

Copy
[root@host ~]# docker run --name boot2 -d b8ea3d603e18
d281bfeb900325724968ec89f7e4623f9add844d101cf4773f3b14c36253f301
[root@host ~]# docker network connect my_net boot2
6.再启动一个centos7容器,同时连接到该网络

Copy
[root@host ~]# docker run -it --name my_centos --network my_net centos:7
[root@b4f27e7db4c0 /]
7.在centos7容器中访问另外的两个容器。

注:这里boot1、boot2是两个spring-boot项目,端口均为8080。

Copy
[root@b4f27e7db4c0 /]# ping -c 4 boot1
PING boot1 (172.18.0.2) 56(84) bytes of data.
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=2 ttl=64 time=0.089 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=3 ttl=64 time=0.097 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=4 ttl=64 time=0.084 ms

--- boot1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3111ms
rtt min/avg/max/mdev = 0.055/0.081/0.097/0.017 ms
[root@b4f27e7db4c0 /]# ping -c 4 boot2
PING boot2 (172.18.0.3) 56(84) bytes of data.
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=3 ttl=64 time=0.078 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=4 ttl=64 time=0.101 ms

--- boot2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3085ms
rtt min/avg/max/mdev = 0.065/0.083/0.101/0.016 ms
[root@b4f27e7db4c0 /]# curl http://boot1:8080/
Hello Docker World[root@b4f27e7db4c0 /]#
[root@b4f27e7db4c0 /]# curl http://boot2:8080/
Hello Docker helloaaasdfasdf[root@b4f27e7db4c0 /]#
[root@b4f27e7db4c0 /]#
8.查看网络详细信息

注:按组合键ctrl+P+Q退出my_centos容器

Copy
[root@b4f27e7db4c0 /]# [root@host ~]#
[root@host ~]# docker network inspect my_net
[
    {
        "Name": "my_net",
        "Id": "a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1/16"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "7ca3834887355e3ecb4a2ae484694c2dbc0944f12e23498fd4b03237c4c35632": {
                "Name": "boot1",
                "EndpointID": "10a5dad08d25fb5fbefdf3240b8b94edcf76e6e40ef8f1bb8fe029d288338e75",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "b4f27e7db4c01105ec2d59b34cf7971929d4c8563c3d3c4b6ff8bb61d031fe34": {
                "Name": "my_centos",
                "EndpointID": "9cbb7f1c9747787e70c0f94cc4924c987b084553426fbfa2b62713c178614498",
                "MacAddress": "02:42:ac:12:00:04",
                "IPv4Address": "172.18.0.4/16",
                "IPv6Address": ""
            },
            "d281bfeb900325724968ec89f7e4623f9add844d101cf4773f3b14c36253f301": {
                "Name": "boot2",
                "EndpointID": "19b58907f5209b98f316c83dddba08c0eacc38a677162767250dbdf4fbb9f3fa",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
[root@host ~]#

http://www.lryc.cn/news/37076.html

相关文章:

  • 测试微服务:快速入门指南
  • MySQL Show Profile分析
  • 基于Docker快速搭建蜜罐Dionaea(30)
  • WP_Query 的所有参数及其讲解和实用案例
  • 100个网络运维工作者必须知道的小知识!(上)
  • Python如何获取大量电影影评,做可视化演示
  • 【C语言】详讲qsort库函数
  • SEO技术风口来了|SEO能否抓住全球约93%的网络用户?
  • mxnet版本与numpy,requests等都不兼容问题
  • 逆向分析——壳
  • 为 Argo CD 应用程序指定多个来源
  • verilog specify语法
  • CMake编译学习笔记
  • Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践
  • IT行业就业趋势显示:二季度平均月薪超8千
  • 【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)
  • C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator
  • Java的jar包打包成exe应用
  • Latex学习笔记
  • 【c++复习】C++的基础知识(常用关键字、缺省参数、函数重载、引用)
  • Docker入门建议收藏 第二部分
  • 蓝桥杯三月刷题 第7天
  • 面试官问百万数据excel导出功能如何实现?
  • 理解HTTPS及配置
  • IP-guard浏览器上传下载智能加解密,让管理更省心省力
  • leetcode day22 位运算
  • java中如何判断map是否为空
  • C语言数据结构:链表的增删改查及动态创建
  • 「Python 基础」I/O 编程、正则表达式
  • java 把pdf图片文档和文章文档转成文字的方法