docker占用内存过高的解决方案

环境:系统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的方式去做就可以了。附上现在的运行图

运行了四个容器: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值