无法使用 MongoDB 运行 docker 镜像



我正在使用Docker+MongoDB运行个人项目(我正在学习教程(。昨天它运行得很完美,但我今天不得不重新启动电脑。

现在我起不来了&再次运行。我总是有错误(根据日志(:编辑:当我尝试在本地运行它时也会发生同样的错误(如果我可以运行任何查询,只需编译并检查Postman(。这是相同的错误消息。编辑2:运行后:

docker run-d--rm--name mongo-p 27017:27017-v mongodbdata:/data/dbmongo

我让它在本地工作。然而,我仍然无法使用docker映像运行它。

Microsoft.AspNetCore.Server.Kestrel[13]连接id";0HML25FGS5AM1";,请求id";0HML25FGS5AM1:00000002〃:由引发了未处理的异常应用System.TimeoutException:使用CompositeServerSelector{Selectors选择服务器30000ms后发生超时=MongoDB驱动程序.MongoClient+AreSessionsSupportedServerSelector,LatencyLimitingServerSelector{AllowedLatencyRange=00:00:00.0150000},OperationsCountServerSelector}。群集状态的客户端视图为{ClusterId:";1〃;,类型:";"未知";,状态:";"断开";,服务器:[{ServerId:"{ClusterId:1,EndPoint:"Unspecified/mongo:27017"];}&";,终点:";未指定的/mongo:27017";,更改原因:;心跳";,状态:";"断开";,服务器版本:,拓扑版本:,类型:"未知";,心跳异常:"MongoDB驱动程序.MongoConnectionException:在打开与服务器的连接。

我可以告诉你:

  1. MongoDB正在运行。在使用Mongo扩展的Visual Studio上,我可以看到我的Mongo数据库已经连接好了
  2. 当我打开docker for windows时,我也可以在那里看到我的图像。如果我把鼠标悬停在通知托盘上的docker图标下,它会显示docker正在运行
  3. 我的连接字符串似乎正常。我想不出有什么问题,因为昨天也一样

我有点迷路了,我不知道还能做什么。因为这个docker错误,重新启动整个教程真的很痛苦。

这是我的连接字符串:

$"mongodb://{User}:{Password}@{Host}:{Port}";

我在cli下运行docker映像的命令是:

docker run-it--rm-p 8080:80-e MongoDB设置:主机=mongo-eMongoDbSettings:Password=Pass#word1--network=net5tutorialpablobhz/目录:v1

欢迎提供任何意见。非常感谢!

好吧,我自己解决了这个问题。以下是我所做的:

  1. 遵循用户barrypicker的建议。它没有成功,但给了我一个干净的开始
  2. 创建了一个新的docker文件,并对其进行了相应的更改(仅做了微小的更改(
  3. 再次创建mongodb容器。以下是我所做的:

docker run-d--rm--name mongo-p 27017:27017-v mongodbdata:/data/db mongo

很好。现在我让mongo容器再次运行。

  1. 再次构建我的docker镜像:
docker build -t catalog:v1 .
li>尝试再次创建docker网络。由于它已经存在,刚刚收到一条消息说它存在。到目前为止还不错
  • 再次启动mongo容器。我明白,我必须开始为我的码头形象工作。如果没有数据库在运行,它就无法连接到数据库
  • docker run-d--rm--name mongo-p 27017:27017-v mongodbdata:/data/db/e MONGO_INITDB_ROOT_USERNAME=monoadmin-eMONGO_INITDB_ROOT_PASSWORD=通过#word1-network=net5tutorial MONGO

    1. 再次启动主容器:

    docker run--it--rm-p 8080:80-e MongoDB设置:主机=mongo-eMongoDB设置:密码=通过#word1--network=net5教程目录:v1

    希望这能在未来帮助到别人!很抱歉,解释不太好,这是我第一次使用Docker,为了让它发挥作用,我经历了很多尝试和错误。

    谢谢大家!

    最新更新