本文介绍一个 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
1、配置文件中的 ip 地址改成容器别名
2、创建 redis-demo 容器加 --link redis-server
删除之前的容器和镜像,重新构建镜像和创建容器
测试,发现 redis-demo 项目能正常连接 redis
会在该容器的 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
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏