我在Windows 10计算机中安装了 Docker Desktop for Windows ,并创建了一个名为 MobyLinuxVM 的hyper-v
虚拟机。我将mongodb
部署到新容器,并将端口映射到 MobyLinuxVM 27017端口。 MobyLinuxVM虚拟机ip为10.0.75.2
,主机win10机器ip为192.168.1.10。 MobyLinuxVM使用名为DockerNAT的内部网络类型的hyper-v虚拟交换机,它是 MobyLinuxVM 的默认交换机。
现在我可以从主机win10机器访问Mongo数据库了。但是如何从其他机器访问mongo数据库?我尝试将MobyLinuxVM机器网络适配器更改为另一个外部网络类型虚拟交换机,但我无法获取MobyLinuxVM虚拟机IP,我尝试通过SSH登录虚拟机,但没有知道用户名和密码。
那么如何从其他机器访问部署在windows docker容器中的数据库?
答案 0 :(得分:0)
只有当您使用桥接网络时,您的虚拟机才会获得自己的IP地址。一旦您的hyper-v获取IP地址,您就可以从其他机器访问它。问题不是与docker而是网络适配器的Hyper-v。
答案 1 :(得分:0)
如果您运行“docker run -p port1:port2 mongodb”之类的命令,那么您应该使用运行docker引擎的主机访问此服务:mongodb:// your_windows_machine_host:port2 这个案例适用于我,我没有进行特殊设置来访问容器中的mongo。