代码
https://github.com/thiskevinwang/rust-redis-docker/tree/for-stackoverflow
上下文:
用铁 rust 写的 Cargo.toml
:
[dependencies]
redis = "0.16.0"
hyper = "0.13"
地方发展✅
有用的东西:
运行redis docker容器 bitnami/redis
,与一起发布
-p 6379:6379 redis-cli
可以成功连接到此docker容器
浏览器可以在
localhost:3000 GET /
显示一些文本✅ GET /redis
在redis中增加一个计数器,并显示它✅
在docker中运行rust代码❌
rust docker容器无法连接到redis docker容器
运行相同的redis docker容器 bitnami/redis
,
浏览器可以击中生 rust 的容器
localhost:3000 GET /
像以前一样显示一些文本✅ GET /redis
导致生 rust 代码死机❌
连接被拒绝(操作系统错误111)
我不确定这是否是我错误地处理“docker网络”的问题,或者是我错误地使用redis板条箱(尽管文档非常稀少)。
1条答案
按热度按时间yfjy0ee71#
你有这个吗
docker-compose.yaml
:从docker撰写链接上的文档:
链接服务的容器可以在与别名相同的主机名处访问,如果未指定别名,则可以在与服务名称相同的主机名处访问。
所以误差在第70行
main.rs
:这是行不通的,因为redis示例与您的rust代码不在同一个容器中运行。您必须通过docker compose文件中建立的链接连接到它,在本例中,该文件是:
一旦你做了这个修正
GET localhost:3000/redis
返回成功。