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的环境变量全部删掉

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows上安装Docker有几种常见的方式: 1. **使用Docker Toolbox**:Docker Toolbox是一个包含Docker客户端和虚拟机的安装程序。它提供了一个全面的工具集,用于在Windows上运行Docker容器。Toolbox适合初学者和熟悉Docker的人使用。要使用Docker Toolbox,请按照官方文档中的步骤进行安装。 2. **使用Windows 10自带的Hyper-V驱动程序**:从Windows 10 Pro和Enterprise版本开始,Microsoft提供了一个内置的Hyper-V驱动程序,用于在Windows上运行Docker容器。这种方法不需要额外的虚拟机软件,但需要确认您的Windows版本支持此功能。安装过程中,您可能需要接受Hyper-V许可协议并配置一些设置。 3. **使用Windows Server**:如果您正在使用Windows Server,您可以直接安装Docker引擎,而无需虚拟机软件。这种方法更适用于需要Docker容器功能的服务器环境。要使用此方法,请确保您已安装适当版本的Windows Server,并按照官方文档中的步骤进行安装。 4. **使用Docker for Windows**:Docker for Windows是Docker公司为Windows用户提供的一种更现代和方便的安装方式。它基于Docker Toolbox,并针对Windows进行了优化,提供了更好的性能和用户体验。Docker for Windows直接在本地系统上运行Docker客户端和Hyper-V虚拟机,无需虚拟化软件层。 这些是Windows上安装Docker的几种常见方式。选择哪种方式取决于您的需求和偏好。对于初学者,Docker Toolbox可能是一个不错的起点,因为它提供了全面的工具集。而对于服务器环境,Windows Server自带的功能可能是更好的选择。使用Docker for Windows是介于两者之间的选择,它提供了更好的性能和用户体验,并适合大多数使用情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值