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

如何将Oracle Linux虚拟机Docker中的MongoDB连接至MongoDB Compass

解决MongoDB Compass连接Oracle Cloud虚拟机中Docker MongoDB的问题

核心问题分析

你当前连接到本地Windows MongoDB,本质是连接字符串指向了本地localhost,且虚拟机侧的MongoDB端口未完成网络链路打通与端口暴露。

分步解决步骤

1. 确认Docker容器的端口映射配置

在Oracle Linux虚拟机的命令行中,先检查MongoDB容器的运行状态,确认端口是否正确映射到虚拟机端口:

docker ps

查看输出的PORTS列,需存在类似0.0.0.0:27017->27017/tcp的配置。如果没有,需重新启动容器并配置端口映射:

# 替换<container-id>为你的容器ID,停止并删除现有容器
docker stop <container-id> && docker rm <container-id>
# 重新启动MongoDB容器,将虚拟机27017端口映射到容器27017端口
docker run -d -p 0.0.0.0:27017:27017 --name mongodb mongo:6.0.2

注:0.0.0.0表示允许虚拟机所有网卡访问该端口,确保外部能发起连接。

2. 配置Oracle Cloud安全组规则

登录Oracle Cloud控制台,找到你的虚拟机对应的安全组,添加入站规则:

  • 协议类型:TCP
  • 端口范围:27017
  • 源地址:建议设置为你本地Windows的公网IP(更安全),测试阶段可临时设为0.0.0.0/0(不建议长期开放)

3. 开放Oracle Linux虚拟机防火墙端口

在虚拟机命令行中执行以下命令,开放27017端口:

# 永久开放27017端口
sudo firewall-cmd --add-port=27017/tcp --permanent
# 重启防火墙使配置生效
sudo firewall-cmd --reload
# 确认端口已开放
sudo firewall-cmd --list-ports

4. 修正MongoDB Compass的连接字符串

不要使用localhost:27017,改用Oracle Cloud虚拟机的公网IP,示例连接字符串:

mongodb://<虚拟机公网IP>:27017/

后续若给MongoDB添加账户,连接字符串格式为:

mongodb://<用户名>:<密码>@<虚拟机公网IP>:27017/

5. 测试网络连通性

在Windows命令行中测试虚拟机的网络可达性:

# 测试虚拟机IP是否可ping通
ping <虚拟机公网IP>
# 测试27017端口是否可访问(PowerShell命令)
Test-NetConnection <虚拟机公网IP> -Port 27017

若端口不通,回到前面步骤检查安全组、防火墙及Docker端口映射配置。

额外建议

  • 尽管当前MongoDB无账户,生产环境务必开启认证,避免未授权访问
  • 可给MongoDB容器挂载本地卷,防止容器删除后数据丢失:
docker run -d -p 0.0.0.0:27017:27017 -v /opt/mongodb/data:/data/db --name mongodb mongo:6.0.2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:25:18