概述
- Docker 中存在多个容器时,容器与容器之间经常需要进行通讯,例如nacos访问mysql,redis集群中各个节点之间的通讯。
- 解决方案
- Docker 中容器与容器之间进行通讯的解决方案一般有两种:
- 第一种:两个容器通过宿主机进行通讯(容器中的端口会映射到宿主机上)
- 第二种:两个容器之间直接通过虚拟网络进行连接,但是需要我们在docker中创建网络。
- 初始化网路
- 架构设计
- 新建网络
- 例如:创建名字为t-net的网络
- docker network create -d bridge t-net #t-net为自己起的网络名称
- 其中,-d driver,网络类型,默认 bridge。
- 说明,创建好这个网络以后,在网落上添加容器,容器就可以通讯了
- 查看网络信息
- 列出所属有网络
- docker network ls
- 查看网络信息
- docker inspect 67d #67d 为创建的网络id
- 实现容器互联
- 创建容器
- 打开终端,基于centos:7这个镜像启动容器,并加入到t-net这个网络
- docker run -it --name app1 --network t-net centos:7
- 新开终端执行,基于centos:7这个镜像再启动容器,同时也加入到t-net网络
- docker run -it --name app2 --network t-net centos:7
- 测试网络互通
- 在两个终端中分别执行:
- ping app1
- ping app2