Docker for Windows
安装Docker for Windows报错信息:Docker Desktop requires Windows 10 Pro/Enterprise/Home (18363+).
解决方式
1.更新 Windows 系统版本Windows10Upgrade9252.exe 下载地址下载完运行 Windows10Upgrade9252.exe更新完,安装 Docker Desktop
2.如遇“若要升级windows server或企业版请联系管理员” 或window版本过低建议安装 docker-toolbox
安装完后得到三个应用:1.虚拟机、2.Docker的GUI版本、3.Docker的命令行环境,点击 Docker QuickStart 图标来启动 Docker Toolbox 终端,双击运行如果报错,那可能是因为你已经安装了Hyper-v,所以VirtualBox无法用64位的虚拟机。需要卸载Hyper-v。
1.Docker QuickStart 运行报错
Running pre-create checks...
Error with pre-create check: "Hyper-V is installed. VirtualBox won't boot a 64bits VM when Hyper-V is activated. If it's installed but deactivated, you can use --virtualbox-no-vtx-check to try anyways"
Looks like something went wrong in step ´Checking if machine default exists´
解决方法:打开Docker Toolbox安装目录,找到start.sh,编辑start.sh,找到下面的代码片段:
STEP="Checking if machine $VM exists"
if [ $VMEXISTSCODE -eq 1 ]; then"${DOCKERMACHINE}" rm -f "${VM}" &> /dev/null || :rm -rf ~/.docker/machine/machines/"${VM}"#set proxy variables if they existsif [ -n ${HTTPPROXY+x} ]; thenPROXYENV="$PROXYENV --engine-env HTTPPROXY=$HTTPPROXY"fiif [ -n ${HTTPSPROXY+x} ]; thenPROXYENV="$PROXYENV --engine-env HTTPSPROXY=$HTTPSPROXY"fiif [ -n ${NOPROXY+x} ]; thenPROXYENV="$PROXYENV --engine-env NOPROXY=$NOPROXY"fi"${DOCKERMACHINE}" create -d virtualbox $PROXYENV "${VM}"
fi
将"${DOCKERMACHINE}" create -d virtualbox $PROXYENV "${VM}"
这段修改为
"${DOCKERMACHINE}" create -d virtualbox --virtualbox-no-vtx-check $PROXYENV "${VM}"
重新启动Docker QuickStart
2.Docker QuickStart 运行报错
An error occurred trying to connect: Get http://127.0.0.1:2375/v1.22/images/json: dial tcp 127.0.0.1:2375: connectex: No connection could be made because the target machine actively refused it.
打开PowerShell,输入:
docker-machine ls
我们可以看到我们当前的Docker虚拟机的状态。如果什么都没有的话,那么我们可以使用以下命令创建一个Docker虚拟机。
docker-machine create --driver=virtualbox default
创建完毕后,我们在用docker-machine ls确认我们的Docker虚拟机在运行中。
然后使用以下命令获得虚拟机的环境变量:
docker-machine env default
然后再输入:
docker-machine env default | Invoke-Expression
这样我们就把当前的PowerShell和虚拟机里面的Docker Linux建立的连接,接下来就可以在PowerShell中使用docker命令了。
比如我们要查看当前有哪些镜像:
docker images
如果依然未解决
打开PowerShell,输入:
docker-machine.exe env --shell powershell
执行最后一行命令,执行完后再次使用docker命令 如 docker images docker ps -a 等命令,查看是否已解决上述问题。
& "D:\Docker Toolbox\docker-machine.exe" env --shell powershell | Invoke-Expression