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

注意
:
Mac os 要使用 docker
必须要通过 linux 内核的虚拟机, 因为docker 是基于 linux 内核的
就算的官方的 Docker Desktop
也是通过内置 linux 虚拟机实现的
三种方案的特点
:
| 官方 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镜像
选择 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