多容器通信

🔗 原文链接:https://docker.easydoc.net/doc/8117...

⏰ 剪存时间:2022-04-04 23:50:41 (UTC+8)

✂️ 本文档由 飞书剪存 一键生成

学习目标

项目往往都不是独立运行的,需要数据库、缓存这些东西配合运作。

这节我们把前面的 Web 项目增加一个 Redis 依赖,多跑一个 Redis 容器,演示如何多容器之间的通信。

创建虚拟网络

要想多容器之间互通,从 Web 容器访问 Redis 容器,我们只需要把他们放到同个网络中就可以了。

文档参考:https://docs.docker.com/engine/reference/commandline/network/

演示

创建一个名为 test-net 的网络:

1
docker network create test-net

运行 Redis 在 test-net 网络中,别名 redis

1
docker run -d --name redis --network test-net --network-alias redis redis:latest

修改代码中访问 redis 的地址为网络别名

运行 Web 项目,使用同个网络

1
docker run -p 8080:8080 --name test -v D:/test:/app --network test-net -d test:v1

查看数据

1
http://localhost:8080/redis

容器终端查看数据是否一致

更多相关命令

1
2
3
4
5
6
7
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 查看网络列表