👨👦👦 多容器通信
## 学习目标
项目往往都不是独立运行的,需要数据库、缓存这些东西配合运作。
这节我们把前面的 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`的地址为网络别名

#### 运行 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) 给我提问或反馈遇到的问题。