gpt4 book ai didi

python - 从主机连接到运行 MongoDB 的 Docker 容器

转载 作者:行者123 更新时间:2023-12-01 00:52:13 24 4
gpt4 key购买 nike

我在从主机 (macOS 10.14.5) 连接到 mongod 时遇到问题在 Docker 容器内运行(Docker 版本 18.09.2,内部版本 6247962)。我使用 --network host 启动容器选项,并设置mongod收听 0.0.0.0 .

docker run --network host --name testmongo -it mongo:latest /bin/bash
root@linuxkit-025000000001:/# mongod --bind_ip 0.0.0.0
2019-06-07T00:28:56.227+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] MongoDB starting : pid=13 port=27017 dbpath=/data/db 64-bit host=linuxkit-025000000001
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] db version v4.0.10
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] allocator: tcmalloc
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] modules: none
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] build environment:
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] distmod: ubuntu1604
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] distarch: x86_64
2019-06-07T00:28:56.232+0000 I CONTROL [initandlisten] target_arch: x86_64
2019-06-07T00:28:56.233+0000 I CONTROL [initandlisten] options: { net: { bindIp: "0.0.0.0" } }

我现在希望可以访问 localhost:27017在我的主机上并连接到 mongod服务器,但我不断收到 Connection Refused回复。来自jupyter console并使用 pymongo :

In [1]: import pymongo                                                                                                                                     

In [2]: client = pymongo.MongoClient(host='localhost', port=27017)

In [3]: client.list_database_names()

---------------------------------------------------------------------------
ServerSelectionTimeoutError Traceback (most recent call last)
<ipython-input-3-62f658703d98> in <module>
----> 1 client.list_database_names()

[LONG ERROR MESSAGE]

ServerSelectionTimeoutError: localhost:27017: [Errno 61] Connection refused

非常感谢您对我在这里做错了什么的深入了解。

最佳答案

根据这个link网络主机仅适用于 Linux 主机,不适用于 MacO 的 Docker Desktop。

要解决此问题,请使用 -p 选项运行 docker,例如 -p 27017:27017

例如: docker run -d -p 27017:27017 -v ~/data:/data/db mongo

关于python - 从主机连接到运行 MongoDB 的 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56486727/

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