Mac 低内存使用 Docker 的方法

Docker是基于linux的容器技术,在Macos下使用一般是用 Docker Desktop 来操作。但是Docker Desktop 太占内存了,对内存是金子做的Mac来说太奢侈。本文使用 Parallels Desktop 安装 Apline 使用 Docker。对比Orbstack等,应该是目前最省内存的方案了。

运行一个Dockge容器的情况下,仅占用437M内存

1208171056.avif

注意:loudspeaker::

Mac os 要使用 docker

必须要通过 linux 内核的虚拟机, 因为docker 是基于 linux 内核的

就算的官方的 Docker Desktop

也是通过内置 linux 虚拟机实现的

三种方案的特点 :helicopter: :

官方 Docker Desktop Orbstack PD + Apline + Docker
特点 和 Mac 系统融为一体,就像 Mac 自带 Docker 一样。命令、文件、网络共享,耦合程度高。但是组件繁杂,启动慢,占用内存高。 和 MacOS 融为一体,就像 Mac 自带 Docker 一样。命令、文件、网络共享,耦合程度高。省内存。Docker 所在虚拟机对用户透明。 在具体的Apline虚拟机中运行 Docker ,完全分离;可以单独设置虚拟内存(swap),极限节省 Mac 内存。但操作麻烦。

1. 下载安装PD

参考:https://www.luoxx.top/archives/pd20-free-share

2. 下载Alpine镜像

官网:downloads | Alpine Linux

选择 Standard 中 的 aarch64 下载

3.PD 安装 Alpine

参考:https://www.bilibili.com/video/BV1H3411H7W4

注意!在 ssh 配置中,需要输入 yes ,允许root通过密码登录

完成之后,先关机

poweroff

然后在PD的设置中,修改一下内存、CPU配置

主要是将网络改为桥接,方便ssh连接

4. 使用 cli 命令打开 Alpine

使用 Parallels Desktop 的命令行模式打开 Alpine

减少 PD 程序本身启动的内存占用

# 启动虚拟机
prlctl start "Alpine"

# 查看虚拟机配置
prlctl list -a -i   

通过 prlctl 命令,可以查看虚拟机的状态,包括内存、CPU、磁盘等。

可以看到ip,就可以通过ssh连接了

优化设置:

# 自动分配cpu与内存,默认256M
prlctl set "Alpine" --cpus auto  
prlctl set "Alpine" --memsize 256
prlctl set "Alpine" --memsize auto

5. 安装 Docker

打开nano /etc/apk/repositories

将community源的注释删除掉,即删掉下面第二行的#

http://dl-cdn.alpinelinux.org/alpine/v3.18/main
# http://dl-cdn.alpinelinux.org/alpine/v3.18/community

然后安装docker

apk add docker
rc-update add docker default
service docker start
158 个赞

感谢佬的分享

7 个赞

图里的Alpine 已经包含了paralles 的占用么0.0

这种套娃逻辑,不应该比直接套的方式占用更大么?

2 个赞

要求还是太大了

6 个赞

直接运行 docker 要 1G 多一点内存,这样看还是虚拟机强

1 个赞

是使用 Parallels Desktop 的命令行模式打开 Alpine

减少 PD 程序本身启动的内存占用

你看内存列表里面都没有 Parallels Desktop

这不是套娃

因为Mac os 要使用 docker

必须要通过 linux 内核的虚拟机, docker 是基于 linux 内核的

就算的官方的 Docker Desktop

也是通过内置 linux 虚拟机实现的

3 个赞

好方法,空了试试

1 个赞

太精确了,很棒

1 个赞

有点厉害~~

1 个赞

目前我都是用的orbstack来替代Docker Desktop,改天上班的时候,测测楼主的方法怎么样。

1 个赞

学习了。。。。

感谢大佬教程

4 个赞

谢谢佬分享,我现在用的也是 Orbstack,感觉还可以,没想到还有更省的

感谢分享大佬厉害啊

我用的是orbstack

@HSn @Night_Voyagerr @hongmenke


Orbstack PD虚拟机
优缺点 和 MacOS 融为一体,就像 Mac 自带 Docker 一样。命令、文件、网络共享,耦合程度高。Docker 所在虚拟机对用户透明。 在具体的虚拟机中运行 Docker ,完全分离;可以单独设置虚拟内存(swap),极限节省 Mac 内存
3 个赞

PD虚拟机会比VMware Fusion,UTM这类的更省内存么

应该不会,PD只是一个在Mac上我常用的虚拟机平台

其他的 VMware Fusion,UTM 也可以适用这个方法

这个方法跟Orbstack比起来怎么样?

果然是佬,我就是看别人说好用我就试着用了,发现确实很方便,没管太多