MacOS在外接硬盘中安装docker
当macos空间不足,我们往往想把各种东西放在外接硬盘中,例如虚拟机、游戏等等,如果在系统中安装了docker,其镜像和容器往往也会占据较大的空间,因此将docker放置在外接硬盘中是一件非常nice的事情。采用的核心思想是找到文件系统中存储数据的目录,然后使用软链接的方式将其存放在外接硬盘之中。
- 首先需要安装docker,这里直接使用
brew install docker,如果是安装docker desktop的话会包含“运行时”,但是此时是没有的,直接运行docker pull xxx会报错 
1  | $ docker pull redis  | 
- 这里不使用docker desktop for mac,它的资源开销过大,我们使用OrbStack作为macos的运行环境,按照官方文档所述安装即可:
brew install orbstack - 直接打开OrbStack后,可以查看文件的位置,如下图所示
 

打开软件后默认开启运行时环境,如果想关闭的话,可以运行orb stop。事实上关闭该软件的时候,orb仍然在运行
- 打开存储位置大概是这样,会在网络的地方出现一个OrbStack的宗卷,这个宗卷里的
docker文件夹包含容器、镜像和挂载卷 

我们的目的就是对这个文件夹创建软链接,这个文件夹肯定是存储在我们本地磁盘的,在哪呢?其实是
~/.orbstack/data/里,这个文件夹中有3个文件,如下:data.imgREADME.txtswap.img
其中
data.img显示的大小是8.8TB,对应的就是上面说的OrbStack的宗卷,可以看到他们的实际大小一致

所以其实整个OrbStack的数据都存储在
~/.orbstack/data/底下,接下来的关键就是把这个文件移动到外接硬盘上去。然而直接复制粘贴是不行的,因为这里面有个虚假8.8TB的磁盘映像,所以我们按照如下步骤,先直接把这个~/.orbstack/data/删了,再建立软链接,最后让OrbStack在外接硬盘上重新生成一份。- 删除
~/.orbstack/data/ - 创建软链接:
ln -s /Volumes/your/path/.orbstack/data ~/.orbstack/data - 重新打开OrbStack,在偏好设置中Reset Docker,如下图所示
 

- 删除
 最后得到的效果应该类似这样,然后正常地使用docker命令拉镜像就行

注意⚠️
外接硬盘必须是APFS格式,否则创建好软链接后OrbStack启动时会报错
如果是MacOS和Windows共用的硬盘,格式应该是ExFat,该格式是不支持的
⚠️⚠️⚠️
此外,Obstack还有创建虚拟机的功能,相当于把虚拟机的文件系统都放在硬盘里,非常优雅。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gxyrious's Blog!






