繁体   English   中英

无法托管机器的 redis 到 docker 导轨应用程序

[英]not able to host machine's redis to docker rails app

我正在尝试连接 docker 容器中的 Rails 应用程序,并尝试将其连接到在端口 6379 上运行的主机 Redis 服务器。我得到了

停靠文件 暴露 3000 暴露 6379

sudo docker run -it -e RAILS_ENV=development -p 3000:3000 -p 6379:6380 <containerid>

给出错误

Redis::ConnectionError: Connection lost (ECONNRESET)
when redis is running on 6380.

当我尝试在 6379 上运行 Redis 时,出现以下错误

须藤 docker 运行 -it -e RAILS_ENV=development -p 3000:3000 -p 6379:6379

docker: Error response from daemon: driver failed programming external connectivity on endpoint vigorous_turing (2b5c8e2b4f5df5f1bfcccfdfc87fd5ea78c5c2643de4e00774e7dec67acbd8c4): Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use.

如果 Redis 在宿主机上运行,你想在容器外进行通信,docker 建议使用host.docker.internal

因此,不要在 Redis 配置中指定localhost作为主机,而是使用host.docker.internal 现在,您的 Rails 应用程序将能够与外部通信。 -p 6379:6379是不必要的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM