我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker容器互联互通的实现方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker容器互联互通的实现方法

本文讲解不同网络下的容器可以通过加入同一个docker网络,来访问该docker网络下的容器,并且既可以通过容器ip也可以通过容器名连接,非常方便。

上篇讲到创建自定义网络,我创建了 mynet 网络,并指定了网关和子网地址。在上篇结尾呢,我抛出了一个问题:其它网络下的容器可以直接访问mynet网络下的容器吗?今天就让我们一块看下怎么实现容器互联。

其它网络下的容器加入mynet网络,实现一个容器两个ip地址

网络集群

  • 先创建test-network网络:
docker network create test-network
  • 再运行centos01容器并加入到test-network网络下
docker run -it -P --name centos01 --net test-network centos

centos01容器已经加入在test-network网络下了

centos01加入mynet网络

root@--- ~]# docker network connect mynet centos01

查看mynet网络

  • docker network ls
[root@--- ~]# docker network ls
NETWORK ID     NAME           DRIVER    SCOPE
feafa30d4051   bridge         bridge    local
e8bf4fced9e2   host           host      local
0096a971fd2c   mynet          bridge    local  # 自定义bridge网桥
6263db0933b9   none           null      local
799426d70aa2   test-network   bridge    local
  • docker network inspect 0096
[root@--- ~]# docker network inspect 0096
[
    {
        "Name": "mynet",
        "Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1",
        "Created": "2021-10-04T10:18:09.113847736+08:00",
        # ... 省略代码展示
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        # ... 省略代码展示
        "Containers": {
            "2fac920eebd505794c4a27ef4efdf531d32805e8663bded93a473bd28236bc27": {
                "Name": "mynet-centos01",
                "EndpointID": "3aff075...",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "3dceda051252b6970fe2156bac7710ba6489a97aac68c49b1c85a2f130d0556f": {
                "Name": "mynet-tomcat01",
                "EndpointID": "9f52b19...",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            },
            "cb1922b95b9316d129b54f3545fad9729092926e10a1d5517f8928db42706151": {
                "Name": "centos01",
                "EndpointID": "0ba2107...",
                "MacAddress": "02:42:c0:a8:00:04",
                "IPv4Address": "192.168.0.4/16",   # 新加入的centos01容器
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

查看centos01的容器信息

可以看到Networks下面存在mynettest-network两个网络连接信息

一个容器两个ip地址

无关代码已省略展示

[root@--- ~]# docker inspect cb19
[
    {
        "Id": "cb1922b95b9316d129b54f3545fad9729092926e10a1d5517f8928db42706151",
        "Created": "2021-10-03T13:39:00.942877668Z",
        "Path": "/bin/bash",
        "Args": [],
        
        # ... 省略代码展示
        
        "NetworkSettings": {
            # ... 省略代码展示
            "Networks": {
                # 网络连接1 : mynet
                "mynet": {、
                    # ... 省略代码展示
                    "Gateway": "192.168.0.1",
                    "IPAddress": "192.168.0.4",
                    "MacAddress": "02:42:c0:a8:00:04",
                },
                # 网络连接2 : test-network
                "test-network": {
                    # ... 省略代码展示
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.3",
                    "MacAddress": "02:42:ac:12:00:03",
                }
            }
        }
    }
]

test-network网卡下的centos01访问mynet网卡下的mynet-centos01、mynet-tomcat01

容器ip和容器名都可以连接

进入centos01容器

[root@--- ~]# docker exec -it cb19 /bin/bash

mynet-tomcat01 容器的IP是: 192.168.0.3

ping mynet-tomcat01 容器的IP

[root@cb1922b95b93 /]# ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.186 ms
^C
--- 192.168.0.3 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6000ms
rtt min/avg/max/mdev = 0.090/0.127/0.186/0.029 ms

直接ping 容器名 mynet-centos01 mynet-tomcat01

[root@cb1922b95b93 /]# ping mynet-centos01
PING mynet-centos01 (192.168.0.2) 56(84) bytes of data.
64 bytes from mynet-centos01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.105 ms
^C
--- mynet-centos01 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.105/0.116/0.130/0.013 ms

[root@cb1922b95b93 /]# ping mynet-tomcat01
PING mynet-tomcat01 (192.168.0.3) 56(84) bytes of data.
64 bytes from mynet-tomcat01.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.085 ms
^C
--- mynet-tomcat01 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.085/0.093/0.102/0.012 ms
[root@cb1922b95b93 /]# 

结论

其它网络下的容器可以通过加入docker网络,来访问该docker网络下的容器,并且既可以通过容器ip也可以通过容器名连接,非常方便。docker0十分强大

到此这篇关于Docker 容器互联互通的文章就介绍到这了,更多相关Docker 容器互联内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker容器互联互通的实现方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker容器互联互通的实现方法

这篇文章主要介绍了Docker容器互联互通,本文讲解不同网络下的容器可以通过加入同一个docker网络,来访问该docker网络下的容器,并且既可以通过容器ip也可以通过容器名连接,非常方便,需要的朋友可以参考下
2022-11-13

Docker link如何实现容器互联

小编给大家分享一下Docker link如何实现容器互联,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1、容器间通过IP进行网络访问新建两个容器tomcat0
2023-06-22

docker link容器互联如何实现

这篇“docker link容器互联如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“docker link容器互联如何
2023-06-29

docker两个容器互通怎么实现

要实现两个 Docker 容器之间的互通,可以通过以下几种方式:使用网络方式:在创建容器时,可以指定它们使用相同的网络。比如可以创建一个自定义的网络,然后将两个容器加入到该网络中,这样它们就可以通过容器名称来相互通信。具体操作可以参考 Do
2023-10-22

docker容器互联的方式有哪些

Docker容器互联的方式有以下几种:使用Docker Compose:Docker Compose是一个用于定义和运行多个Docker容器的工具。通过在docker-compose.yml文件中定义容器之间的连接和依赖关系,可以实现容器之
2023-10-22

Docker不同网段下的容器互联的实现

本文主要介绍了Docker不同网段下的容器互联的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

docker compose容器互相连接的方法

这篇文章主要介绍了docker compose容器互相连接的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇docker compose容器互相连接的方法文章都会有所收获,下面我们一起来看看吧。haproxy
2023-06-29

Docker端口映射与容器互联的方法是什么

这篇文章主要讲解了“Docker端口映射与容器互联的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker端口映射与容器互联的方法是什么”吧!新建立了一个mydocker的容器
2023-06-04

Docker容器与主机网络互通如何实现

Docker容器与主机网络互通可以通过以下几种方式实现:使用端口映射:通过在Docker容器启动时使用-p参数将容器内部的端口映射到主机上的一个端口,从而实现容器与主机的网络互通。docker run -p 8080:80 nginx在这个
Docker容器与主机网络互通如何实现
2024-05-07

docker实现跨宿主机的容器之间网络互联

本文主要介绍了docker实现跨宿主机的容器之间网络互联,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

Docker跨主机容器间相互访问的实现

本文主要介绍了Docker跨主机容器间相互访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

Docker容器与宿主机相互访问更方便的方法

Docker是当今使用范围最广的开源容器技术之一,具有高效易用的优点,然而如果使用Docker时采取不当安全策略,则可能导致系统面临安全威胁,这篇文章主要给大家介绍了关于Docker容器与宿主机相互访问更方便的方法,需要的朋友可以参考下
2023-05-20

docker不同主机之间互通的方法是什么

Docker不同主机之间互通的方法可以通过以下几种方式实现:使用Docker Swarm:Docker Swarm是Docker官方提供的容器编排工具,可以在多台主机上运行Docker容器,并实现容器之间的互通。通过创建一个Swarm集群,
docker不同主机之间互通的方法是什么
2024-04-09

如何进行Docker容器之间的通信的方法实现

如何进行Docker容器之间的通信的方法实现,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。情景:本地已经搭建laradock开发环境(php7.3+mysql5.7),现在
2023-06-22

编程热搜

目录