👨‍👦‍👦 多容器通信

## 学习目标 项目往往都不是独立运行的,需要数据库、缓存这些东西配合运作。 这节我们把前面的 Web 项目增加一个 Redis 依赖,多跑一个 Redis 容器,演示如何多容器之间的通信。 >s 本文档课件配套 [视频教程](https://www.bilibili.com/video/BV11L411g7U1?p=5) ## 创建虚拟网络 要想多容器之间互通,从 Web 容器访问 Redis 容器,我们只需要把他们放到同个网络中就可以了。 文档参考:[https://docs.docker.com/engine/reference/commandline/network/](https://docs.docker.com/engine/reference/commandline/network/) ## 演示 #### 创建一个名为`test-net`的网络: `docker network create test-net` #### 运行 Redis 在 `test-net` 网络中,别名`redis` `docker run -d --name redis --network test-net --network-alias redis redis:latest` #### 修改代码中访问`redis`的地址为网络别名 ![image.png](https://cos.easydoc.net/46901064/files/kv98rfvb.png) #### 运行 Web 项目,使用同个网络 `docker run -p 8080:8080 --name test -v D:/test:/app --network test-net -d test:v1` #### 查看数据 `http://localhost:8080/redis` 容器终端查看数据是否一致 ## 更多相关命令 `docker ps` 查看当前运行中的容器 `docker images` 查看镜像列表 `docker rm container-id` 删除指定 id 的容器 `docker stop/start container-id` 停止/启动指定 id 的容器 `docker rmi image-id` 删除指定 id 的镜像 `docker volume ls` 查看 volume 列表 `docker network ls` 查看网络列表 >d 觉得老师讲得不错的话,记得点赞、关注、分享,鼓励下老师 你们的鼓励会让老师更加有动力继续创造更多更好的内容 你可以到 [Github issue](https://github.com/gzyunke/test-docker/issues) 给我提问或反馈遇到的问题。