Windows 11 安装 Docker Toolbox 基于 VirtualBox home 编辑时间 2022/09/27 ![](/api/file/getImage?fileId=63325f43da740500130147fe) ## 前言 先明确一点,这是一个过时的方案,也不被官方推荐,以后也不会再更新。如今win10、win11上安装docker,官方推荐方法是去官网下载一个安装程序,然后是基于wsl2运行docker,但我对wsl的印象一直不好,还是喜欢以前的VirtualBox方案。外加wsl2的docker用了一段时间不是遇到bug就是性能有问题,果断卸载,换回熟悉的老方案。 ## 折腾 由于docker官方已停止提供下载,最后一个版本 `19.03.1` 只能在github下载,顺手下载一个最新版 `VirtualBox` [https://github.com/docker-archive/toolbox/releases](https://github.com/docker-archive/toolbox/releases) [https://www.virtualbox.org/wiki/Downloads](https://www.virtualbox.org/wiki/Downloads) <br> 安装 `VirtualBox` ![](/api/file/getImage?fileId=63326457da74050013014817) <br> 安装 `Docker Toolbox` , 可选项如图勾选 ![](/api/file/getImage?fileId=63326457da74050013014816) <br><br> 万事俱备 打开桌面的 `Docker Quickstart Terminal` 遇到报错如下 ![](/api/file/getImage?fileId=63326685da74050013014819) 意思是CPU的VT-X/AMD-V没打开,但实际上现代CPU和主板都支持这个功能,且会默认开启,我这里也在BIOS检查了,是开启状态。 无奈这里只能改写脚本,以关闭VTX检查。 <br> 在 `Toolbox` 安装目录 `C:\Program Files\Docker Toolbox` 有一个 `start.sh` 文件 ,找到69行这句话 `"${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV "${VM}"` 改为 `"${DOCKER_MACHINE}" create -d virtualbox --virtualbox-no-vtx-check $PROXY_ENV "${VM}"` <br> 再次启动桌面 `Docker Quickstart Terminal` 我这次网络给力是一次通过了 如果你遇到 `boot2docker.iso` 下载不动,一直0% 可以先关闭脚本,然后自己去github下载这个iso文件 放到截图红框所在位置,再重新启动脚本即可。 下载 `boot2docker.iso` 的链接 [https://github.com/boot2docker/boot2docker/releases](https://github.com/boot2docker/boot2docker/releases) <br> ![](/api/file/getImage?fileId=63326e27da7405001301481e) <br><br> 直到看到这个界面说明安装完成了 ![](/api/file/getImage?fileId=63326e82da7405001301481f) 此时 `cmd` `powershell` 等均已支持docker指令 ![](/api/file/getImage?fileId=63326f4eda74050013014820) <br><br> 最后做点简单配置 先打开 `Oracle VM VirtualBox` 停止正在运行的docker虚拟机 ![](/api/file/getImage?fileId=63326fcbda7405001301483a) <br> 右击default虚拟机进设置 开启VXT/AMDV选项 处理器数量拉到绿色部分满格 内存大小给到物理机的50% 我这里16G内存给了8G ![](/api/file/getImage?fileId=633271e2da7405001301483d) <br> 在网络里点端口转发 可以看到他已经给了默认的ssh端口 可以用自己的shell软件去连接 IP和端口看截图,用户名密码默认是 `docker` `tcuser` 需要注意连之前必须先在 `VirtualBox` 中启动虚拟机才行,建议使用无界面启动 ![](/api/file/getImage?fileId=633271e2da7405001301483c) 顺便可以把mysql和redis的端口映射提前设置好 需要重启虚拟机生效 ![](/api/file/getImage?fileId=633272bfda74050013014849) <br><br> 最后一步 如果嫌docker镜像下载速度慢可以用镜像源 需要用ssh连接到虚拟机内部linux系统 (ip 127.0.0.1 端口 50582 用户名 docker 密码 tcuser) (如果你不方便用ssh连虚拟机,也有一个办法是在cmd输入命令`docker-machine ssh default` 据说也可以连接,我没试过太麻烦。。。我用finalshell习惯了) 然后输入指令 `sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://hub-mirror.c.163.com |g" /var/lib/boot2docker/profile` 重启虚拟机 然后用 `docker info` 查看是否已添加镜像 可以看到最后有这句话说明添加成功 ```shell Registry Mirrors: https://hub-mirror.c.163.com/ ``` <br><br> ## END 至此大功告成 顺便贴一下常用的mysql和redis镜像的命令 ```shell ## 密码这里记得换成你自己的!!! docker run -d -p 3306:3306\ -e "TZ=Asia/Shanghai"\ --restart=always\ --name mysql\ -e MYSQL_ROOT_PASSWORD='换成你自己的密码'\ -m 4000M\ --oom-kill-disable\ --memory-swap=-1\ mysql:8 docker run -d -p 6379:6379\ -e "TZ=Asia/Shanghai"\ --restart=always\ -m 1000M\ --oom-kill-disable\ --memory-swap=-1\ --name redis\ redis ``` <br><br> 补充:关于开机启动 首先到安装目录 `C:\Program Files\Docker Toolbox` 找到 `docker-start.cmd` 如果直接创建一个快捷方式,并粘贴到目录 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup` 可以实现开机启动docker 但是这个方法有个很傻的地方 开机会有个cmd黑色窗口,全程播报启动进程 大约持续20秒启动成功后,窗口才会消失 且中途不能关闭窗口,否则启动会意外中断 <br><br> 这里只能取巧的方法,用VBScript再来个脚本,让上一个脚本后台运行 所以需要先在 `C:\Program Files\Docker Toolbox` 目录下 新建一个文本文件,命名为 `docker-start.vbs` 核心内容是 ```vbscript createobject("wscript.shell").run "docker-start.cmd",0 ``` <br> 如果电脑配置低开机慢的话,还可以再加一个延迟10秒启动在最前面 ```vbscript WScript.Sleep 10000 ``` <br> 随后把这个 `docker-start.vbs` 创建一个快捷方式 快捷方式复制到启动目录即可 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup` 亲测不设置延迟启动,进入桌面5秒左右自动启动虚拟机,10秒左右可以正常使用docker容器 送人玫瑰,手留余香 赞赏 Wechat Pay Alipay IDEA Community 社区版入门教程 可永久免费 Javascript 防抖 节流 控制单位时间内方法执行次数