You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python容器中使用mongoimport连接同网络Mongo容器失败求助

问题描述

我正尝试在运行Python程序的容器中,使用mongoimport将容器内的文件上传至同一Docker网络中的另一个MongoDB容器。当前使用的命令如下:

mongoimport --host mongo --port 27017 --db vulns --collection qualys-kb --file kb.json --jsonArray

上述命令试图连接名为mongo的容器,该容器与执行命令的容器处于同一Docker网络,且mongo容器运行着MongoDB,可通过标准27017端口访问。但执行命令时出现如下错误:

2023-09-21T12:39:09.184+0000    error connecting to host: failed to connect to mongodb://mongo:27017/: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: mongo:27017, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp: lookup mongo on 192.168.1.1:53: no such host }, ] }

希望能通过容器名连接Mongo容器完成导入,或提供其他可行方法。

解决方案

1. 确认容器在同一自定义Docker网络

Docker默认bridge网络不支持容器名DNS解析,必须使用自定义网络:

  • 检查两个容器的网络归属:
    docker inspect mongo | grep -A5 "Networks"
    docker inspect <python-container-name> | grep -A5 "Networks"
    
  • 若不在同一自定义网络,创建并加入:
    docker network create mongo-network
    # 重启Mongo容器加入网络(需先停止原有容器)
    docker stop mongo && docker rm mongo
    docker run --name mongo --network mongo-network -d mongo
    # 重启Python容器加入同一网络
    docker stop <python-container-name> && docker rm <python-container-name>
    docker run --name <python-container-name> --network mongo-network -d <your-python-image>
    

2. 验证容器间网络连通性

进入Python容器内测试解析和端口:

docker exec -it <python-container-name> bash
# 解析mongo容器名
nslookup mongo
# 测试27017端口连通
telnet mongo 27017

如果nslookup失败,说明网络配置有误;如果telnet不通,检查Mongo容器是否正常运行、端口是否未被防火墙拦截。

3. 临时方案:使用Mongo容器IP

若容器名解析暂时无法修复,直接用Mongo容器的IP地址:

  • 获取IP:
    docker inspect mongo | grep -oP '"IPAddress": "\K[^"]+'
    
  • 修改mongoimport命令:
    mongoimport --host <mongo-ip> --port 27017 --db vulns --collection qualys-kb --file kb.json --jsonArray
    

4. 检查MongoDB绑定配置

确保MongoDB监听所有IP,而非仅localhost:

  • 查看Mongo容器的启动参数,确认没有设置--bind_ip 127.0.0.1;若使用配置文件,需将bindIp设为0.0.0.0。

内容的提问来源于stack exchange,提问作者AsapHogFtw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:11:29