我在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容器中的数据库呢?
只有当您使用桥接网络时,您的虚拟机才会获得自己的IP地址。一旦您的hyper-v获取IP地址,您就可以从其他机器访问它。问题不是与docker相关,而是hyper-v的网络适配器。
如果您运行“docker run -p port1:port2 mongodb”之类的命令,那么您应该可以使用运行docker引擎的机器主机访问此服务:mongodb:// your_windows_machine_host:port2此案例适用于我和我havn没有进行特殊设置来访问容器中的mongo。