在Windows 10 Home上安装Docker,可行吗?

7

Docker需要Win 10专业版,因为它需要一些虚拟化扩展(HyperV和容器)。Win 10家庭版是否可以满足这些要求?


https://docs.docker.com/docker-for-windows/install/非常清晰地列出了要求,并提供了Docker Toolbox作为替代方案的链接。 - David Maze
@DavidMaze 这个问题有什么不清楚的地方吗? - Krzysztof Cichocki
现在有一种更简单的方法,可以使用Chocolatey工具来完成这项任务,详细说明请参见-> https://medium.com/@remisharoon/the-smartest-way-to-run-docker-on-windows-10-home-441c4dd215d - Remis Haroon - رامز
5个回答

14

是的,可以在Windows 10 Home上完成(尝试过win10Home v1809 27.01.2019)

以管理员身份在命令提示符中运行:

  1. Install Hyper-V:

    pushd "%~dp0"
    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
    for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    del hyper-v.txt
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
    pause
    
  2. Install Containers:

    pushd "%~dp0"
    dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
    for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    del containers.txt
    Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
    pause
    
  3. Edit registry keys:

    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /f /v EditionID /t REG_SZ /d "Professional"
    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /f /v ProductName /t REG_SZ /d "Windows 10 Pro"
    
  4. Download and run official Docker Installer For Windows.

  5. In my case the registry keys were restored after restart, but you could restore them manually:

    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID /t REG_SZ /d "Core"
    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName /t REG_SZ /d "Windows 10 Home"
    

这种毅力令人印象深刻,你单凭在家庭版上安装了Hyperv就赢得了我的支持。 - James Woolfenden
1
对我来说非常好用(Windows 10 Home,版本17134),但只有在我将(1)和(2)步骤的命令放入*.bat文件中并以管理员身份从Power Shall运行它们后才有效。 - Charnel
现在有一种更简单的方法,可以使用Chocolatey工具来完成这项任务,详细说明请参见-> https://medium.com/@remisharoon/the-smartest-way-to-run-docker-on-windows-10-home-441c4dd215d - Remis Haroon - رامز

5
现在有一种更好的方法在Windows 10 Home版上运行Docker。
下一个版本的Docker for Windows在WSL 2上运行,并且微软已经为WSL 2做出了特殊的例外,允许它在Windows 10 Home版上使用hyper-V。
我称之为“更好”的理由是这是Docker在Windows上的未来,因为Docker公司认为这是一种相当好的解决方案,正如他们在关于这个新版本的公告中所讨论的那样。
但是,如果你想现在就利用这个解决方案(在2019H2 Windows更新之前),你需要安装Windows的内部版本,以便使用WSL 2预览版,然后安装WSL 2 previewthe new Docker的预览版。

2020年7月更新

Windows 10 2004版本现已上市,因此我想添加一些新的资源。以上仍然是正确的,但这里有一些新资源...

https://arstechnica.com/gadgets/2020/06/whats-new-in-windows-10-build-2004/
并向下滚动到“Linux子系统版本2”进行简短讨论。

还有一个更新的 Docker 安装链接...
安装 Docker Desktop 稳定版 2.3.0.2(或更高版本)。
https://docs.docker.com/docker-for-windows/wsl/


太棒了 :) - Krzysztof Cichocki

0
如果你想在Windows系统中直接使用Docker,并且想要运行Windows容器,目前还没有官方支持。Docker Desktop不允许这样做;它会提示“Windows容器支持需要Windows 10 Pro或企业版构建版本>=14372”。

Windows Containers support requires a Windows 10 Pro or enterprise build >= 14372

然而,如果你对Linux容器感兴趣,并且在Windows 10家庭版实例上有WSL2(从版本1903+开始就会有),那么你不需要安装Docker桌面版。

(1)通过WSL2设置Linux实例

进入提升的CLI提示符(CMD和PS都可以正常工作):

  1. 确认您已经安装了WSL2:wsl --status
  2. 安装Ubuntu:wsl --install
    • wsl --install --distribution ubuntu相同
  3. 在强制重启后,重新登录后,您将获得一个专门的命令提示符窗口。设置Linux用户和密码。(如果忘记了,可以使用wsl --user root,然后使用passwd {your-account-name}进行修复。)
  4. 更新:sudo apt update && sudo apt upgrade
  5. 我的没有ifconfig:sudo apt install -y net-tools

如果您想了解如何控制您的实例,请查看Microsoft文档

通常情况下,进入WSL中默认的Ubuntu实例非常容易,只需从常规CLI提示符中键入“bash”或“ubuntu”。不过,我强烈建议安装“Windows终端”并使用它。

(2) 安装Docker

在您的Linux实例中打开提示符。如果需要更多帮助,可以在这里找到通用说明。我使用的是Ubuntu实例。

  1. 信任 Docker 仓库的 GPG 密钥:curl -fsSL https://download.docker.com/linux/${ID}/gpg | sudo apt-key add -
    • 与以下命令类似:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  2. 将其稳定版本的仓库添加为软件包源:echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/${ID} $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
    • 与以下命令类似:echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  3. 更新本地索引:sudo apt update
  4. 安装 Docker: sudo apt install -y docker-ce docker-ce-cli containerd.io
  5. 将您的帐户添加到“docker”组:sudo usermod -aG docker $USER
  6. 使组更改生效:
    • 关闭所有打开的会话,等待大约 10 秒钟进行自动 Linux 实例关机。然后打开一个新的会话。
    • 关闭窗口并强制实例重新启动(从 Windows CLI 提示符):wsl --terminate {distro-name}。然后打开一个新的会话。
  7. 启动 Docker:sudo -b dockerd
  8. 验证 Docker 是否正常工作:docker run --rm hello-world

Dockerd和services/auto-start问题

WSL2目前没有干净的方法来自动启动dockerd守护进程。有很多解决方法在网络上。有些人通过计划任务启动wsl来启动dockerd。有些人通过在.profile.bashrc中添加一段聪明的代码来启动它。不久之后,应该会有一个官方支持的方法,通过/etc/wsl.conf文件中的"[boot]"部分实现,但似乎仍未在Windows 10 20H2中实现,就像曾经建议的那样

更新2021-11-25:我决定将这个添加到我的.profile中(从这里复制)。它避免了sudo。

if service docker status 2>&1 | grep -q "is not running"; then
    wsl.exe -d "${WSL_DISTRO_NAME}" -u root -e /usr/sbin/service docker start > /dev/null 2>&1
fi

与Windows主机的交互

  • 从Linux实例进入Windows,有挂载点:/mnt/{windows-drive-letter}/...
  • 从Windows进入Linux实例,有一个神奇的“共享”:\\wsl$\{linux-instance-name}\...

了解跨操作系统边界时文件权限如何工作的更多信息


0

这可能会帮助那些无法升级到专业版或专业版的人。考虑在Windows上安装Docker Toolbox。对于Mac用户:Mac上的Docker Toolbox。 查看差异此处

传统桌面解决方案。 Docker Toolbox适用于旧的Mac和Windows系统,不符合“Docker Desktop for Mac”和“Windows上的Docker Toolbox”的要求。如果可能的话,我们建议更新到较新的应用程序。

根据文档,工具箱包括以下Docker工具:

  • Docker Machine 用于运行 docker-machine 命令
  • Docker Engine 用于运行 docker 命令
  • Docker Compose 用于运行 docker-compose 命令
  • Kitematic,Docker 图形用户界面
  • 一个预配置了 Docker 命令行环境的 shell
  • Oracle VirtualBox

0
使用 Winget 只需一个命令即可安装它。
winget install -e --id Docker.DockerDesktop 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接