• 欢迎订阅我的Youtube频道
  • 欢迎加入我的电报群

同时使用 Hyper-V Docker 和 Virtual Box Docker Toolbox

网络技术 fennng 7个月前 (11-11) 579次浏览 0个评论

有时候我们因为种种原因我们需要使用 Virtual Box, 而不能使用 Hyper-V. 而 Virtual Box 和 Hyper-V 由于一个是二级虚拟,一个是一级虚拟, 它们两个是不能同时使用的。 当然,这里我要提示大家一下, 不能同时使用并不是不能同时安装。 它们可以同时存在, 只是不能同时启用罢了。

我本来是一直在使用 Hyper-V 的, 因为我装的 Docker 需要它。 但是最近我想安装 Geny Montion 这个安卓模拟器, 而因为这个模拟器是基于 Virtual Box 的, 导至无法启动。 而也有小伙伴跟我反应在 Windows 7 和 Windows 10 家庭版里都没有 Hyper -V, 无法使用 Docker. 所以我就研究了下如何在 Virtual Box 里使用 Docker. 然后我发现, 其实 Hyper-V 和 Virtual Box 是可以轮着用的,不需要卸载其中一个,只是切换的时候需要重启电脑。

首先,我使用了以下命令来禁用 Hyper V, 需要在管理员模式下运行

bcdedit /set hypervisorlaunchtype off

如果你之后想重新启用 Hyper V, 使用以下命令

bcdedit /set hypervisorlaunchtype auto

禁用 Hyper-V 后, 重启电脑, 这时候你发现 Hyper V Manager 还是可以用的, 只是里面的虚拟机打不开了, 原来的 Docker 自动启动的时候也会出错。

这个时候,下载 Docker ToolBox 并安装。

安装的时候,可选安装 Virtual Box, 如果你已经安装了, 可以把勾去掉。

安装好后, 在桌面上点击 Docker Quickstart Terminal, 就会进入一个特殊的命令行。 第一次启动要花点时间, 等进入以后, 你会看到一个以$ 开头的 BASH 命令提示符。

这个时候你就可以直接输入 Docker 命令了。

但是和 Hyper V 下的 Docker 有一点区别, 当你用 -p 映射端口的时候, 你映射的不是本地端口, 而是虚拟机的端口,比如说我开了一个网页服务器用 -p 8080:80 这个参数, 最后服务器正常工作,但我却不能使用 localhost:8080 去访问它, 我需要使用 192.168.99.100:8080 去访问它。 而且你会注意到, 这个 Docker 和你 Hyper V 里面的 Docker 是分开的, 你所有的原来是 Docker 容器都需要重建, 相关的镜像文件也要重新下载,这是因为他们在不同的虚拟机里运行。

因为我可能会切换回 Hyper V 去使用 Docker, 所以我并不想改我代码里面的 localhost:8080 这个服务器地址到 192.168.99.100:8080, 那怎么样才可以让 localhost:8080 也工作呢? 其实办法很简单, 在 Linux 我们有个常用的小工具叫 socat, 可以用来作端口转发, 而在 Windows 底下, 其实也有一个自带的工具可以做到。

这个命令叫 netsh

以管理员身份输入以下命令, 就会把 localhost:8080 的访问数据转发到 192.168.99.100:8080,
这样就不需要改动代码了。

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=localhost connectport=8080 connectaddress=192.168.99.100

当然,当你用完的时候,你需要使用以下命令来删除端口转发

netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=localhost 

你也可以创建另一个 Ubuntu 的虚拟机,再使用 ssh 通道来做端口转发 (可以映射到 localhost), 这是我在不知道 netsh 可以做端口转发时想到的方法。

当你用完 Virtual Box 想回到 Hyper V 了, 在管理员模式下输入以下命令, 然后重启

bcdedit /set hypervisorlaunchtype auto

你就又回到 Hyper V 里面了。 你的 Virtual Box 和 Docker Toolbox 都还在,只是启动不了了。 但是你随时可以禁用 Hyper V 重新启用它们。


峰享技术 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:同时使用 Hyper-V Docker 和 Virtual Box Docker Toolbox
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址