在Windows10家庭版安装Docker遇到问题的解决方法

在 Windows 上安装Docker是一个相当简单和直接的过程,之前接触Docker是在 Centos 系统下,在 Windows 下并没有尝试过

我司的项目一直在用Docker,我在我司用的电脑也是 Windows10,其他人基本都是 Mac,入职的时候我是按照内部 Wiki建的环境,使用的VirtualBoxvagrant

不过现在有一个新的项目,所以还是尝试一下使用Docker,同时为了在自己笔记本上假期练习或者修改 Bug 方便点,就在自己的电脑上装起来Docker

开始说我的问题吧

1、家庭版安装 Docker for Windows

我的笔记本当初买的时候就家庭版,也没有太关注,看文档直接下载了Docker for Windows,结果安装就GG了,直接提示:

Installation failed:one pre-requisite is not full filled

Docker for Windows requires Windows 10 Pro or Enterpriser version 14393,or Windows server 2016 RTM to run

这是什么原因呢,原因就是Docker可以支持在 Mac、Windows、Linux 上安装,但是在 Windows10 系统中Docker for Windows目前只能在 64 位的 Windows10 专业版、企业版、教育版下才能安装,Win7/Win8/Win10 家庭版需要通过Docker Toolbox来安装,我的电脑是家庭版的,却要安装Docker for Windows

2、在安装了 Hyper-V 的 Windows 上安装 Docker Toolbox

这个是最坑的,可能遇到好几个坑

Docker for Windows是依赖 Hyper-v 的,但是Docker Toolbox是用VirtualBox的,我在上一步的时候已经安装了Hyper-v,还是之前Windows10家庭版的功能中没有Hyper-V的解决方法 文中发的方法添加的Hyper-v

Windows功能中关闭居然没生效,重启过的,安装Docker Toolbox倒是没有什么大问题

1)但是如果像我一样安装了Hyper-V,可能将无法正常使用,尝试启动Docker QuickStart Terminal,将会出现以下错误消息:

Running pre-create checks...
Error with pre-create check: "This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)"
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...

这个我的解决方式是直接把Hyepr-v禁用,管理员模式运行 CMD:

//To disable:
bcdedit /set hypervisorlaunchtype off

//To enable:
bcdedit /set hypervisorlaunchtype auto 

问题就解决了,当然还有另外一种方式

我们修改启动文件以允许它创建默认的 VM,我们要修改的文件位于C:\Program Files\Docker Toolbox\start.sh,要修改文件,必须在以管理员身份运行的编辑器中打开文件

现在是编辑文件的时候了,但在这之前,可能需要保存原始文件的副本,以防万一。找到以下代码片段:

STEP="Checking if machine $VM exists"
if [ $VM_EXISTS_CODE -eq 1 ]; then
  "${DOCKER_MACHINE}" rm -f "${VM}" &> /dev/null || :
  rm -rf ~/.docker/machine/machines/"${VM}"
  #set proxy variables if they exists
  if [ "${HTTP_PROXY}" ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTP_PROXY=$HTTP_PROXY"
  fi
  if [ "${HTTPS_PROXY}" ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTPS_PROXY=$HTTPS_PROXY"
  fi
  if [ "${NO_PROXY}" ]; then
    PROXY_ENV="$PROXY_ENV --engine-env NO_PROXY=$NO_PROXY"
  fi
  "${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV "${VM}"
fi

在倒数第二行是创建虚拟机的地方:

"${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV "${VM}"

修改该行并将--virtualbox-no-vtx-check加入。最终的结果是:

"${DOCKER_MACHINE}" create -d virtualbox --virtualbox-no-vtx-check $PROXY_ENV "${VM}"

保存更改,现在应该可以运行Docker QuickStart Terminal而不会出现任何问题

2)Power up failed (vrc=VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT, rc=E_FAIL (0X80004005))

如果你是按照上一个问题的第二个方式解决的,第二次在启动的时候,报错

Starting "default"...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Creating a new host-only adapter produced an error: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create failed:
(default) 0%...
(default) Progress state: E_INVALIDARG
(default) VBoxManage.exe: error: Failed to create the host-only adapter
(default) VBoxManage.exe: error: Assertion failed: [!aInterfaceName.isEmpty()] at 'F:\tinderbox\win-5.2\src\VBox\Main\src-server\HostNetworkInterfaceImpl.cpp' (76) in long __cdecl HostNetworkInterface::init(class com::Bstr,class com::Bstr,class com::Guid,enum __MIDL___MIDL_itf_VirtualBox_0000_0000_0038).
(default) VBoxManage.exe: error: Please contact the product vendor!
(default) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
(default) VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 94 of file VBoxManageHostonly.cpp
(default)
(default) This is a known VirtualBox bug. Let's try to recover anyway...
(default) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #5"
(default) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
Unable to start the VM: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe startvm default --type headless failed:
VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
 
Details: 00:00:01.889052 Power up failed (vrc=VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT, rc=E_FAIL (0X80004005))

这个问题的解决方案是:关掉Hyper-V之后,重启电脑就正常了

然后使用命令:

docker-machine create –driver virtualbox node1

3、Docker for Windows 使用命令报错

家庭版不能直接安装Docker for Windows,所以我就把我的电脑装成了专业版,然后进行安装

这个问题出现在安装过Docker Toolbox又卸载的电脑安装Docker for Windows的时候,使用Docker的命令出现报错找不到CA证书

could not read CA certificate "C:\\Users\\username\\.docker\\machine\\machines\\default\\ca.pem": open C:\Users\username\.docker\machine\machines\default\ca.pem: The system cannot find the file specified.

这个问题是因为在安装Toolbox的时候有写入环境变量,这个证书的路径是配置在环境变量中的,卸载的时候环境变量还在

所以右键我的电脑–>属性–>高级系统设置–>环境变量–>用户变量,把那几个Docker的环境变量全部删掉

重新打开命令行窗口执行命令,就发现可以使用了

转载自:https://cloud.tencent.com/developer/article/1355198

### 回答1: 在 Windows 10 家庭版安装 Docker 的步骤如下: 1. 安装 Docker Desktop:从 Docker 官方网站下载并安装 Docker Desktop。 2. 启动 Docker Desktop:在 Windows 搜索栏中搜索 Docker,然后启动 Docker Desktop。 3. 验证安装是否成功:在 Windows 终端中输入 "docker run hello-world",如果安装成功,将会看到一条欢迎信息。 注意:由于 Windows 10 家庭版不支持 Hyper-V,因此不能在 Windows 10 家庭版安装 Docker Desktop for Windows。您可以尝试使用 Docker Toolbox 或转而使用 Windows 10 Pro 版本。 ### 回答2: 在Windows 10家庭版安装Docker,需要按照以下步骤进行操作。 第一步,首先需要确保Windows 10操作系统版本大于或等于版本1709,同时需要启用Hyper-V和虚拟化功能。可以通过运行“dxdiag”命令检查Windows 10版本信息。右键点击开始菜单,选择“设备管理器”,在“处理器”下查看,如果存在“Hyper-V虚拟化(对硬件辅助的虚拟化)”字样,则表示Hyper-V功能已经启用。 第二步,确保Windows 10中已经安装Docker Desktop。可以在Docker官网下载最新版Docker Desktop安装包,并根据安装向导进行安装。 第三步,安装成功后,在Docker Desktop应用程序窗口中,点击右上角的齿轮图标,在弹出的菜单中选择“Settings”选项,进入Docker设置界面。 第四步,点击左侧侧边栏的“Resources”选项卡,进入资源管理设置。在此页面中,可以设置容器所可以使用的CPU和内存等资源。 第五步,配置Docker网络设置。点击侧边栏的“Network”选项卡,可以设置Docker内部网络的相关参数。 第六步,最终确认Docker的配置。在“Settings”页面中,点击左侧侧边栏的“Docker Engine”选项卡,在此页面中可以配置高级选项,例如配置Docker的存储位置和日志级别等。 综上所述,安装Docker在Windows 10家庭版操作系统上是十分容易的。只需根据上述步骤进行配置,即可在家庭版系统上愉快地使用Docker容器化技术。 ### 回答3: Docker是一种流行的开发工具,它使用容器技术来管理应用程序并与操作系统进行交互。Windows 10家庭版没有默认安装Docker,但是我们可以通过以下步骤来安装Docker: 1. 首先,前往Docker官网(https://docs.docker.com/docker-for-windows/install/)并下载Docker for Windows安装程序。 2. 安装完成后,打开“设置”应用程序并选择“更新和安全性”选项。 3. 在左菜单中选择“开发人员模式”并启用此选项。 4. 打开PowerShell命令提示符并输入以下命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 5. 此命令将启用Hyper-V虚拟化功能,必要时要求您重新启动计算机以完成安装。重新启动计算机后,您应该能够在Windows 10家庭版中运行Docker。 6. 打开“Docker for Windows”应用程序,它将下载并安装所有必要的组件。安装可能需要一些时间,取决于您的网络连接速度和计算机配置。 7. 安装完成后,打开PowerShell命令提示符并输入以下命令来验证安装docker version 8. 如果一切顺利,您应该看到有关Docker客户端和服务器版本的详细信息。 最后,您可以使用Docker来构建、测试和部署应用程序。使用Docker来构建应用程序可以提高开发效率,减少环境变量的问题,提高应用程序的移植性,并简化应用程序的部署过程。尽管Windows 10家庭版不支持Docker的默认安装,但是我们可以通过上述步骤来安装Docker并开始使用它对我们的应用程序进行开发和管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值