博主分享免费Java教学视频,B站账号:Java刘哥
本文介绍一个 docker 容器如何访问另一个 docker 容器
如我这里写了一个名为 redis-demo 的 Springboot 项目,这个项目里需要访问 redis
配置文件 application.yml 部分内容如下
先创建一个名称为 redis-server 的容器
然后用IDEA 的 docker 插件构建一个镜像,并创建容器
通过地址栏访问项目,发现报错,提示 Redis 连接失败
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
通过别名和--link解决
1、配置文件中的 ip 地址改成容器别名
2、创建 redis-demo 容器加 --link redis-server
删除之前的容器和镜像,重新构建镜像和创建容器
测试,发现 redis-demo 项目能正常连接 redis
我们发现添加 --link redis-server 后
会在该容器的 hosts 里自动添加一条记录
即将 redis-server 绑定到 172.17.0.3
如我这里写了一个名为 redis-demo 的 Springboot 项目,这个项目里需要访问 redis
配置文件 application.yml 部分内容如下
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
先创建一个名称为 redis-server 的容器
docker run --name redis-server -p 6379:6379 -d redis
然后用IDEA 的 docker 插件构建一个镜像,并创建容器
docker run --name redis-demo -p 8080:8080 -d saysky/redis-demo
通过地址栏访问项目,发现报错,提示 Redis 连接失败
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
解决办法
通过别名和--link解决
1、配置文件中的 ip 地址改成容器别名
spring:
redis:
database: 0
# host: 127.0.0.1
host: redis-server
port: 6379
2、创建 redis-demo 容器加 --link redis-server
docker run --name redis-demo -p 8080:8080 -d --link redis-server saysky/redis-demo
删除之前的容器和镜像,重新构建镜像和创建容器
测试,发现 redis-demo 项目能正常连接 redis
原因
我们发现添加 --link redis-server 后
会在该容器的 hosts 里自动添加一条记录
即将 redis-server 绑定到 172.17.0.3
- 微信
- 交流学习,有偿服务
- 博客/Java交流群
- 资源分享,问题解决,技术交流。群号:590480292
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏