Docker需要Win 10专业版,因为它需要一些虚拟化扩展(HyperV和容器)。Win 10家庭版是否可以满足这些要求?
Docker需要Win 10专业版,因为它需要一些虚拟化扩展(HyperV和容器)。Win 10家庭版是否可以满足这些要求?
是的,可以在Windows 10 Home上完成(尝试过win10Home v1809 27.01.2019)
以管理员身份在命令提示符中运行:
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
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
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"
Download and run official Docker Installer For Windows.
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"
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/
然而,如果你对Linux容器感兴趣,并且在Windows 10家庭版实例上有WSL2(从版本1903+开始就会有),那么你不需要安装Docker桌面版。
进入提升的CLI提示符(CMD和PS都可以正常工作):
wsl --status
wsl --install
wsl --install --distribution ubuntu
相同wsl --user root
,然后使用passwd {your-account-name}
进行修复。)sudo apt update && sudo apt upgrade
sudo apt install -y net-tools
如果您想了解如何控制您的实例,请查看Microsoft文档。
通常情况下,进入WSL中默认的Ubuntu实例非常容易,只需从常规CLI提示符中键入“bash”或“ubuntu”。不过,我强烈建议安装“Windows终端”并使用它。
在您的Linux实例中打开提示符。如果需要更多帮助,可以在这里找到通用说明。我使用的是Ubuntu实例。
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
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
wsl --terminate {distro-name}
。然后打开一个新的会话。sudo -b dockerd
docker run --rm hello-world
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
/mnt/{windows-drive-letter}/...
\\wsl$\{linux-instance-name}\...
这可能会帮助那些无法升级到专业版或专业版的人。考虑在Windows上安装Docker Toolbox。对于Mac用户:Mac上的Docker Toolbox。 查看差异此处
传统桌面解决方案。 Docker Toolbox适用于旧的Mac和Windows系统,不符合“Docker Desktop for Mac”和“Windows上的Docker Toolbox”的要求。如果可能的话,我们建议更新到较新的应用程序。
根据文档,工具箱包括以下Docker工具:
docker-machine
命令docker
命令docker-compose
命令winget install -e --id Docker.DockerDesktop