Docker IDEA Springboot3 Win11 Docker Toolbox VirtualBox 整合入门笔记 home 编辑时间 2024/08/16 ![](/api/file/getImage?fileId=66bf14edc0a657000b026579) <br><br> ## 前言 <br> 不怪我标题起的长,因为这个组合全网也找不到第二个人用 完整的流程是 在 `Windows11` 下 安装 `VirtualBox` + `Docker Toolbox` 然后以虚拟机的方式安装Docker https://github.com/docker-archive/toolbox/releases <br> 注意:这一方案在2019年即淘汰,淘汰5年了,但是我个人最喜欢这个方案。所以一路沿用至今 22年写过一个教程笔记 https://leanote.zzzmh.cn/blog/post/admin/63325e37da740500130147fb <br> 然后今天我的新需求是, 根据上述系统环境 在IDEA里配置DockerEngine, 最终可以在IDEA里图形化一键打包DockerImages <br> 写完全篇我发现已经长的离谱了,那不妨说说为啥我喜欢这个淘汰的方案。 1. 早期WSL内存占用极其严重,恨不得在你的windows里塞一个完整的ubuntu,再往里装个docker,你啥也没装,启动就占几百MB内存,启动速度还慢,也许现在已经进化好了,但我不想试了 2. 图形界面没啥用,配置起来比如VirtualBox方便 3. 此方案内存和硬盘只占100M(不算VirtualBox本体的话),VirtualBox本身我也一直用来学linux折腾一直用的。并且关闭开机启动就可以关闭的非常彻底,相当于从来没安装过一样,不影响不工作的时候当个游戏机用。 <br> 在boot2docker作者最后一个pull request里也可以看到大量用户吐槽Windows自带的WSL方案,呼吁作者回归继续更新,但是由于某种原因,作者被要求停止更新至今。如果未来有天此方案彻底用不了,我可能就不在windows下用docker了。比如物理机直接刷linux作为开发环境。 https://github.com/boot2docker/boot2docker/pull/1408 <br><br> ## Docker Toolbox 安装 <br> 快速回顾一下Docker Toolbox的安装流程,具体的操作可以参考我之前的笔记 https://leanote.zzzmh.cn/blog/post/admin/63325e37da740500130147fb <br> 首先下载DockerToolbox和VirtualBox https://github.com/docker-archive/toolbox/releases https://www.virtualbox.org/wiki/Downloads <br> 先正常安装一遍Virtualbox 再安装Toolbox 勾选如图 ![](/api/file/getImage?fileId=66bf07b1c0a657000b02644c) <br> 安装完成后,桌面会多一个图标 `Docker Quickstart Terminal` 本意是一键启动部署Docker虚拟机,但是会出现网路问题和VT-X/AMD-V问题 <br> 执行 `Docker Quickstart Terminal` 如果出现以下画面,说明存在VT-X/AMD-V问题,修改脚本跳过检测即可 ![](/api/file/getImage?fileId=66bf0854c0a657000b026469) <br> 在 Toolbox 安装目录 C:\Program Files\Docker Toolbox 有一个 start.sh 文件 ,找到69行这句话 ```shell "${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV "${VM}" # 修改为 "${DOCKER_MACHINE}" create -d virtualbox --virtualbox-no-vtx-check $PROXY_ENV "${VM}" # 保存脚本 ``` <br> 再次执行 `Docker Quickstart Terminal` ![](/api/file/getImage?fileId=66bf08a6c0a657000b02646a) 如果卡在红框这个地方,说明无法直连github下载raw文件 这时需要关闭脚本 手动去下载文件并放在红框里这个位置 下载地址 https://github.com/boot2docker/boot2docker/releases 文件位置(用户名替换Administrator位置) C:\Users\Administrator\.docker\machine\cache\boot2docker.iso <br> 再次执行 `Docker Quickstart Terminal` 一般就可以正常一步到位了 <br><br> ## Docker Toolbox 配置 <br> 打开VirtualBox 找到一个叫default的容器 右击 停止 关闭电源 停止后 右击 设置 <br> 系统 - 主板 - 内存大小 建议给系统的50% ![](/api/file/getImage?fileId=66bf0aa7c0a657000b0264a3) <br> 系统 - 处理器 核心数、峰值 这2个直接拉满 关键是下面2个勾必须勾上,尤其是VT-X/AMD-V 这个如果没打开的话 巨慢无比 ![](/api/file/getImage?fileId=66bf0aa8c0a657000b0264a4) <br> 这里就要说到一个特殊情况了,在AMD的机器上,有概率出现特殊情况 CPU支持AMD-V 主板支持AMD-V 主板BIOS已开启AMD-V 就是TMD VirtualBox里这个 `VT-X/AMD-V` 开关灰色 打不开 <br> 多亏这位老哥提供的解决方法 https://blog.csdn.net/m0_46346750/article/details/139507125 <br> 大概流程是 控制面板 添加删除程序 启用或关闭Windows功能 名字类似 `虚拟机平台` `hyper-v` `windows沙盒` 一律关闭 开始菜单搜 内核隔离 内存完整性 关闭 完成后重启系统即可解除AMD-V的占用 <br> 所以说了半天其实是Windows的锅,占着茅坑不拉屎 如果你用虚拟机装Docker但是不开启VT-X/AMD-V 那结果会是灾难性的 慢到令人发指 <br> 关于怎么知道是否正确呢 右击default 启动 正常启动 一般30秒就能启动成功 看下图 这里显示VT-X/AMD-V就正常了 ![](/api/file/getImage?fileId=66bf1094c0a657000b026543) <br> 关于宿主机如何连接虚拟机里的docker里的程序问题如图 配置端口转发即可 ![](/api/file/getImage?fileId=66bf120ec0a657000b026545) <br><br> **关于Docker里 docker pull 速度贼慢 网络无法连接问题!!!** 经过长时间折腾,最终发现不是本方法有问题,是他娘的DockerHub官方被墙,不能直连了。 大概是2024年6月之后,无法直连DockerHub,包含第三方加速镜像,要么直接关闭镜像服务, 要么镜像停留在了很古早的版本并且永不更新。所以目前解决这个问题非常棘手。 而且你用win11那个方案的docker也有这个问题。 解决方案分为2个思路 1. 想办法开代理并且要让虚拟机内部走代理 2. 自己搭Docker镜像,用阿里云的免费服务可以在一定范围内,自己搭任意容器指定版本的镜像仓库,然后用命令从自己的仓库里获取Images <br> 关于Redis无法启动问题,本方法不适用 redis版本大于6.2 经过测试,可能6.2.3可以,但是后续版本不行,因为后续版本都需要Linux系统中读取一项内存配置 本方法运行的linux是一个80MB的超级浓缩版本,根本不存在此项服务,所以无法支持 ``` <br> 关于开机启动问题 在 Docker Toolbox的默认安装目录下 `C:\Program Files\Docker Toolbox` 有一个文件是 `docker-start.cmd` 内容是套娃一个bash执行shell脚本 ```shell @echo off "C:\Program Files\Git\bin\bash.exe" -c " \"/c/Program Files/Docker Toolbox/start.sh\" \"%*\"" ``` 直接双击运行`docker-start.cmd` 就可以启动default虚拟机 一种做法是直接右击 发送到桌面快捷方式 然后在桌面找到快捷方式,复制到启动目录 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup` 这个方案的缺点就是,每次开机都要看到这个黑框框几十秒 还不能随手关 关了就中止进程了 ![](/api/file/getImage?fileId=66bf1392c0a657000b026547) 解决方法是在同级目录下再开一个vbscript脚本 再度套娃 `docker-start.vbs` ```vbscript createobject("wscript.shell").run "docker-start.cmd",0 ``` 然后把这个vbs文件的快捷方式丢到启动目录,就可以开机启动docker了 ## IntelliJ IDEA 2024 Docker 配置 参考github boot2docker的readme https://github.com/boot2docker/boot2docker 我推测他内部端口应该是2376 先把端口映射出来,在VirtualBox中配置端口 ![](/api/file/getImage?fileId=66c69d42c0a657000b02a1f7) 然后IDEA配置Docker扩展插件(2024.1自带) 如图,在IDEA设置中,搜索Docker,点加号新建 关键就是,不要用Docker For Windows 用TCP Socket URL地址是 `https://localhost:2376` 由于用了https,还需要配置TLS证书路径 默认路径 'C:\Users\Administrator\.docker\machine\machines\default\' 如果配置正确下面一行小字就会是 `Connection successful` (路径中的Administrator是你的Win11当前账户用户名) ![](/api/file/getImage?fileId=66c69d78c0a657000b02a1f8) 这一步卡了好几天,外网资料也极少,好在是一个一个排除终于试验出来了。 如何使用Docker插件可以参考官方文档 https://www.jetbrains.com/help/idea/docker.html 简单来说就和Maven、Git插件一样,减少命令语句,增加图形化操作 短时间内我指学会了一些基础用法,深入的以后学会了再来更新 首先是打开图形界面,在屏幕左下,名字叫Services,快捷键是`Alt + 8`,点开就可以看到Docker管理界面,管理的对象是一整个Docker,非常方便 ![](/api/file/getImage?fileId=66c6a07bc0a657000b02a22c) ## 遗憾 真的非常遗憾,"最后一个"折腾DockerToolbox的用户要换Win11 DockerDesktop了 原因正是前文提到过的,无法直连Docker,也无法走以前的镜像加速 重复叙述一遍:2024年6月,DockerHub被强,无法直连。国内主流镜像停止服务或停在几年前版本永不更新! 根据研究依然还有很多办法,包括用阿里云免费镜像服务,自己搭建一套镜像,然后指定自己仓库拉取镜像 但是这一刻我累了,只想好好写代码,实现一个一个有用的程序,精力用在与天斗没意思了 但是我还是非常希望直连DockerHub,这样可以保持在最新版本,也可以直接接触更多的好镜像 用Win11 DockerDesktop主要考虑到的是 1. 图形界面里可以直接配置代理,走代理可以直连DockerHub,和以前体验几乎相同 2. 以前WSL1的性能问题得到解决,亲测开启AMD-V,性能超过OracleVirtualBox里跑Docker方案 3. 折腾不动了,累了 补充: 1. 官方地址 [https://www.docker.com](https://www.docker.com) 下载安装后出现问题,安装失败,提示操作系统不支持。 2. 我这里用B站UP主 技术爬爬虾 提供的方案 一次安装成功 地址如下 https://www.bilibili.com/video/BV1vm421T7Kw https://github.com/tech-shrimp/docker_installer ## 补充 过后我又发现,还存在个别镜像加速地址仍然可以使用 虽然我暂时用不到,但是还是先记录在这里,防止以后有用 https://www.bilibili.com/video/BV1fS411A71Y https://github.com/tech-shrimp/docker_installer ```shell sudo vi /etc/docker/daemon.json ``` ```json { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.1panel.live", "https://hub.rat.dev" ] } ``` ## END 送人玫瑰,手留余香 赞赏 Wechat Pay Alipay Windows11 开启WSL2 安装Docker教程 GraalVM入门 Springboot3 项目 Docker