Docker在使用主机网络模式时不会在容器外部公开应用程序,但是它在容器中运行良好

问题描述 投票:0回答:1

我有一个spring boot应用程序,在内部调用redis。我在docker容器内部的6379上运行了redis(也可以通过redis客户端在容器外部访问)但是,当我按如下所示公开应用程序时,它抱怨redis连接失败。在8086上运行

docker run -d --name containerName -p 8086:8086 containerName:version但是可以从浏览器访问http://localhost:8086应用程序但是,当使用--net = host像下面那样运行时,它可以正常工作,并带有警告警告:使用主机网络模式时,已发布的端口将被丢弃

docker run --rm -it -d --net = host --publish-all = true --name containerName containerName:version

但是无法从浏览器http://localhost:8086访问应用程序>

异常堆栈跟踪

线程“ pool-2-thread-1”中的异常org.springframework.data.redis.RedisConnectionFailureException:无法获取Jedis连接;嵌套异常为redis.clients.jedis.exceptions.JedisConnectionException:无法从池中获取资源在org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:282)在org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:476)在org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:134)

原因:java.net.ConnectException:连接被拒绝(连接被拒绝)

在java.base / java.net.PlainSocketImpl.socketConnect(本机方法)

注意:我正在Windows计算机上运行docker容器

我有一个spring boot应用程序,在内部调用redis。我在docker容器内部的6379上运行了redis(也可以通过redis客户端在容器外部访问),但是当我公开...

docker redis docker-for-windows
1个回答
0
投票

我有分别运行的Redis和应用程序容器所以这里是解决方案

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.