无法托管计算机的 Redis to Docker Rails 应用程序



我正在尝试连接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时,我得到了以下错误

带有

sudo docker run-it-e RAILS_ENV=开发-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是不必要的

最新更新