错误导致无法连接到在docker容器中运行的MongoDB

i34xakig  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(123)

我在这样的docker容器中运行MongoDB
docker run --name mongo -d -p 27017:27107 mongo
检查docker ps显示
77f1a11295c3 mongo "docker-entrypoint.s…" 20 minutes ago Up 20 minutes 27017/tcp, 0.0.0.0:27017->27107/tcp mongo
所以它运行的端口Map正确。
当我尝试通过Intellij设置连接时

它失败了

com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Exception receiving message}, caused by {java.net.SocketException: Connection reset}}].

当我尝试连接到连接从一个golang网络服务器
clientOptions:= options.Client().ApplyURI(“mongodb://localhost:27017”)client,err:= mongo.Connect(context.TODO(),clientOptions)
我得到这个错误,它关闭了Web服务器:

server selection error: server selection timeout, current topology: { Type: Unknown, Servers: [{ Addr: localhost:27017, Type: Unknown, Average RTT: 0, Last error: connection() error occured during connection handshake: connection(localhost:27017[-64]) incomplete read of message header: read tcp 127.0.0.1:40700->127.0.0.1:27017: read: connection reset by peer }, ] }

这是MongoDB docker镜像中的bug,还是我需要做其他事情?

xqk2d5yq

xqk2d5yq1#

我认为你在创建容器时有一个打字错误。27017 and 27107
docker run --name mongo -d -p 27017:27017 mongo
这在docker ps命令中很明显。
你能试试看它是否能解决问题吗?

xggvc2p6

xggvc2p62#

正如@fly2matrix所说,你有一个错字,我相信你有另一个问题:
1.您转发了端口27017:27107,其中容器端口不正确。检查27107,而不是27017
1.看起来你连接到了localhost而不是mongo,因为我在你的代码中看到了短语localhost

相关问题