环境:系统macOS13,芯片M1Pro,内存16GB
在mac环境中运行docker,则会出现内存占用过高的情况,如下图:
具体原因如下所介绍:
也就是说,docker是无法直接运行在macOS中的,虽然它们都是类unix的。故而我猜测在每次运行一个container容器时,可能都会创建一个虚拟的Linux环境,导致内存占用过高。
既然问题已经出现,总要想办法解决。我的思路是创建一个Linux虚拟机,在这个虚拟机里面跑docker。也就是说不要直接在macOS中使用docker,而是找一个“替身”虚拟机跑docker。
这里介绍一下ubuntu家新出的一个工具:multipass。在我观察下来它似乎也是一个类似于docker一样的虚拟容器,但是好处是运行起来十分方便。本人之前也试过使用vmware创建centos虚拟机和使用docker直接创建一个centos容器,但是这两者都有各自的缺点:vmware fusion是预览版,不定时收费,同时centos7这个经典版有些地方不支持m1的芯片,同时centos stream也开始出现了,所以迟迟的在犹豫;docker运行centos容器的操作是很骚,但是一来会同样的遇到内存问题,二是会出现权限的错误(具体记不太清楚了,总之就是进入容器后甚至无法使用systemctl这个命令,试了很久也没解决,后来发现是官方的一个问题,弃)。
总之是兜兜转转换到了ubuntu。而ubuntu最近一直在推他们家的multipass,于是就去试用了一下,不得不说体验感非常好,两分钟就运行起来了一个虚拟机。官网在这里:Multipass orchestrates virtual Ubuntu instances
当运行起来之后,就按照正常的Linux安装docker的方式去做就可以了。附上现在的运行图
文章来源:https://www.toymoban.com/news/detail-519276.html
运行了四个容器: 文章来源地址https://www.toymoban.com/news/detail-519276.html
到了这里,关于docker占用内存过高的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!