gpt4 book ai didi

python - 如何使用pymongo连接到Docker容器内的Mongo?

转载 作者:行者123 更新时间:2023-12-02 18:10:37 26 4
gpt4 key购买 nike

我从Docker网站提取了官方的mongo镜像,并启动了一个名为dataiomongo的mongo容器。

我现在想使用pymongo连接到容器内的mongodb。

这是我写的python脚本:

from pprint import pprint
from pymongo import MongoClient

client = MongoClient('localhost', port=27017)

db = client.admin

server = db.command("serverStatus")
pprint(server)

出现的错误是:
Traceback (most recent call last):
File "D:/dataio/test_mongo.py", line 8, in <module>
server = db.command("serverStatus")
File "D:\dataio\venv\lib\site-packages\pymongo\database.py", line 655, in command
read_preference) as (sock_info, slave_ok):
File "C:\Python27\Lib\contextlib.py", line 17, in __enter__
return self.gen.next()
File "D:\dataio\venv\lib\site-packages\pymongo\mongo_client.py", line 1135, in _socket_for_reads
server = topology.select_server(read_preference)
File "D:\dataio\venv\lib\site-packages\pymongo\topology.py", line 226, in select_server
address))
File "D:\dataio\venv\lib\site-packages\pymongo\topology.py", line 184, in select_servers
selector, server_timeout, address)
File "D:\dataio\venv\lib\site-packages\pymongo\topology.py", line 200, in _select_servers_loop
self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 10061] No connection could be made because the target machine actively refused it

如何连接到docker容器内的mongodb?

最佳答案

运行蒙哥

首先,您需要运行mongo

$ docker run --rm --name my-mongo -it -p 27017:27017 mongo:latest

作为守护程序
$ docker run --name my-mongo -d mongo:latest

连接到先前的容器..与另一个容器
$ docker run -it --link my-mongo:mongo --rm mongo:latest sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'

将数据插入数据库
Insert the data into the db

用python连接数据库
client = MongoClient()
client.server_info()
db = client.yourdbname

关于python - 如何使用pymongo连接到Docker容器内的Mongo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com