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.img
README.txt
swap.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!