作为Mac M2用户,在本地开发中离不开Docker环境,但Docker Desktop不仅体积臃肿、后台资源占用高,还存在商业授权限制,对于追求轻量、高效的开发者来说并不友好。而Colima作为一款基于Lima构建的轻量级容器运行时工具,完美适配Apple Silicon(M1/M2系列)架构,开源免费、资源占用低,还能无缝对接Docker CLI,成为Mac M2用户替代Docker Desktop的最优解。
本文将详细讲解:如何在Mac M2系统上通过Homebrew安装Colima、启动Docker服务,以及最关键的——基于Colima配置文件,配置指定的3个Docker镜像加速地址,彻底解决国内拉取Docker镜像慢、超时的问题,全程步骤可复制,新手也能轻松上手。
在Mac M2上使用Colima,相比Docker Desktop有3个核心优势,也是我放弃Docker Desktop的关键原因:
轻量高效:Colima基于轻量Linux虚拟机(Lima)运行,默认仅占用2GB内存,启动速度快,不会像Docker Desktop那样常驻后台占用大量系统资源,尤其适合MacBook Air等资源受限设备;
开源免费:采用MIT开源协议,无任何商业授权限制,个人开发、企业使用都无需担心版权问题,避免了Docker Desktop商业版的付费困扰;
原生适配:完美支持Mac M2的ARM64架构,无需依赖Rosetta转译,可直接运行ARM版本容器,同时也支持通过Rosetta启用x86容器兼容模式,兼顾性能与兼容性;
无缝兼容:启动Colima后,可直接使用标准Docker CLI命令(docker run、docker pull等),无需额外配置,迁移成本几乎为零。
本次我们将完成:Homebrew安装Colima → 安装Docker CLI → 启动Colima(Docker服务) → 配置3个指定镜像加速 → 验证加速生效,全程实操无冗余,附避坑指南。
确保你的Mac M2系统版本 ≥ macOS 10.15(Catalina),Apple Silicon架构原生支持,无需额外配置兼容性。可通过「关于本机」查看系统版本,若版本过低,建议先升级系统(避免Colima启动失败)。
Colima和Docker CLI均通过Homebrew安装,若你的Mac未安装Homebrew,执行以下命令一键安装(复制到终端直接运行):
bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程中会提示输入电脑密码(用于授权Homebrew安装依赖),等待5-10分钟(取决于网络速度),出现“Installation successful”即安装完成。
安装完成后,执行以下命令验证Homebrew是否正常工作,避免后续安装失败:
bashbrew doctor # 检查Homebrew环境(无报错即正常)
brew update # 更新软件包索引,确保下载最新版本
注意:Colima仅提供Docker运行时环境(相当于Docker Engine),还需要安装Docker CLI(命令行工具)才能执行docker相关命令,两者缺一不可。
在终端执行以下命令,通过Homebrew安装Colima(当前最新稳定版本,适配Mac M2):
bashbrew install colima
安装过程中,Homebrew会自动安装Colima的依赖(如Lima虚拟机),无需手动干预,等待安装完成即可。Colima安装完成后,可通过以下命令查看版本,验证安装成功:
bashcolima version
若输出类似“colima version 0.10.0”(版本号可能不同),说明Colima安装成功。
执行以下命令,安装Docker命令行工具(Docker CLI):
bashbrew install docker docker-compose
docker-compose用于管理多容器应用,建议一起安装,后续开发中会用到。安装完成后,验证Docker CLI版本:
bashdocker --version # 查看Docker CLI版本
docker-compose --version # 查看Docker Compose版本
输出类似“Docker version 29.0.1, build 7d4bcd8”即安装成功。此时Docker CLI已安装,但由于还未启动Colima(Docker运行时),执行docker相关命令会提示“无法连接Docker守护进程”,属于正常现象,下一步启动Colima即可解决。
Colima启动后,会自动创建一个轻量Linux虚拟机,在其中启动Docker守护进程,并自动配置Docker上下文(无需手动切换),启动命令非常简单。
在终端执行以下命令,启动Colima(默认配置:2核CPU、2GB内存,足够日常开发使用):
bashcolima start
首次启动时,Colima会下载Lima虚拟机镜像(约几百MB),速度取决于网络,耐心等待即可。启动成功后,终端会输出类似以下日志:
bashINFO[0001] starting colima INFO[0001] runtime: docker INFO[0004] starting ... context=vm INFO[0012] provisioning ... context=docker INFO[0015] starting ... context=docker INFO[0020] ready
出现“ready”即表示Colima启动成功,Docker服务已激活。
若你的Mac M2配置较高(如16GB内存),可在启动时指定CPU、内存和磁盘大小,提升Docker运行性能,命令如下(按需调整参数):
bashcolima start --cpu 4 --memory 8 --disk 40
参数说明:
--cpu 4:分配4核CPU(Mac M2默认8核,建议分配4-6核);
--memory 8:分配8GB内存(建议不超过系统内存的一半,避免影响Mac正常使用);
--disk 40:分配40GB磁盘空间(用于存储Docker镜像和容器数据)。
Colima启动后,执行以下命令,验证Docker服务是否正常工作:
bashdocker run hello-world
若输出“Hello from Docker!”相关内容,说明Colima与Docker CLI连接正常,Docker服务已完全激活,可以正常使用Docker命令了。
补充:Colima的常用管理命令(后续会用到):
bashcolima stop # 优雅停止Colima(推荐,会保存容器状态)
colima stop --force # 强制停止Colima(用于异常状态)
colima restart # 重启Colima
colima status # 查看Colima运行状态
colima delete # 彻底删除Colima实例(谨慎使用,会删除镜像和容器)
这是本文的核心的部分!国内直接拉取Docker官方镜像(Docker Hub、GHCR)速度极慢,甚至会超时失败,我们需要配置指定的3个镜像加速地址,实现快速拉取。
注意:Colima的Docker配置不使用传统的/etc/docker/daemon.json文件,而是通过自身的配置文件(colima.yaml)管理,修改后重启Colima即可生效,这也是很多新手容易踩坑的地方——误以为和Linux系统的Docker配置方式一致,导致配置无效。
本次需要配置的3个镜像加速地址,覆盖了Docker Hub和GHCR的加速,适配日常所有镜像拉取场景:
腾讯云加速:https://mirror.ccs.tencentyun.com(通用Docker Hub加速,稳定快速);
DaoCloud Docker Hub加速:https://docker.m.daocloud.io(专门优化Docker Hub镜像拉取);
DaoCloud GHCR加速:https://ghcr.m.daocloud.io(解决GHCR镜像拉取超时问题)。
Colima的默认配置文件路径为:~/.colima/default/colima.yaml,我们需要在这个文件中添加镜像加速配置,步骤如下:
bashcolima stop
使用nano编辑器打开配置文件(简单易操作,适合新手),命令如下:
bashnano ~/.colima/default/colima.yaml
打开后,你会看到配置文件的默认内容(包含注释和默认配置),其中有一行“docker: {}”,这就是我们需要修改的地方。
YAML格式对缩进要求极端严格,错一个空格就会导致Colima启动失败(这是最常见的坑),请务必按照以下格式修改:
找到文件中的“docker: {}”,将其替换为以下内容(复制粘贴即可,确保缩进正确):
yaml# Docker daemon configuration that maps directly to daemon.json.
# https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file.
# NOTE: some settings may affect Colima's ability to start docker. e.g. `hosts`.
#
# EXAMPLE - disable buildkit
# docker:
# features:
# buildkit: false
#
# EXAMPLE - add insecure registries
# docker:
# insecure-registries:
# - myregistry.com:5000
# - host.docker.internal:5000
#
# Colima default behaviour: buildkit enabled
# Default: {}
docker:
registry-mirrors:
- https://mirror.ccs.tencentyun.com
- https://docker.m.daocloud.io
- https://ghcr.m.daocloud.io
⚠️ 避坑提醒(必看):
必须使用空格缩进,不能用Tab键(Tab缩进会导致配置解析失败);
“docker:”顶格写,后面加一个空格(YAML语法要求);
“mirrors:”前面缩进2个空格,后面加一个空格;
每个加速地址前面缩进4个空格,以“- ”开头(横杠后面加一个空格);
加速地址不能有多余的符号(如引号、逗号),直接复制粘贴即可。
若你不确定缩进是否正确,可直接删除原有的“docker: {}”,复制上面的完整配置(从“docker:”开始),粘贴到配置文件中,确保格式和上面一致。
nano编辑器的保存退出操作:
按键盘上的「Control + O」(字母O,不是数字0),弹出保存提示,按「回车」确认保存;
按「Control + X」,退出nano编辑器,回到终端。
配置修改完成后,执行以下命令重启Colima,加载新的镜像加速配置:
bashcolima start
重启过程和首次启动类似,等待出现“ready”即重启成功,此时镜像加速配置已生效。
配置完成后,一定要验证加速是否生效,避免配置错误导致白忙活,执行以下命令即可快速验证:
bashdocker info | grep -A 5 "Registry Mirrors"
若输出以下内容(包含我们配置的3个加速地址),说明镜像加速配置完全生效:
bashRegistry Mirrors: https://mirror.ccs.tencentyun.com/ https://docker.m.daocloud.io/ https://ghcr.m.daocloud.io/
补充:测试加速效果(可选)
我们可以拉取一个常用镜像(如nginx),测试加速后的拉取速度:
bashdocker pull nginx
若拉取速度从原来的几KB/s提升到几十MB/s,甚至上百MB/s,说明加速效果明显,配置成功。
也可以测试GHCR镜像拉取(之前容易超时),验证DaoCloud GHCR加速是否生效:
bashdocker pull ghcr.io/github/super-linter:latest
若能正常拉取,无超时提示,说明GHCR加速配置成功。
在操作过程中,新手可能会遇到一些问题,这里整理了最常见的3个问题及解决方案,帮你快速避坑。
✅ 原因:colima.yaml配置文件语法错误(90%是缩进错误,比如用了Tab、缩进不一致),导致Docker守护进程无法启动。
✅ 解决方案:
强制停止Colima:colima stop -f;
重新编辑配置文件:nano ~/.colima/default/colima.yaml;
严格按照本文5.2节的格式,重新添加镜像加速配置(确保用空格缩进,无Tab);
保存退出后,重新启动Colima:colima start。
若仍失败,可执行colima delete default -f删除异常实例,再重新执行colima start(会重建实例,不会删除本地镜像和容器)。
✅ 原因:Colima未加载新的配置,或配置文件路径错误。
✅ 解决方案:
确认配置文件路径正确:必须是~/.colima/default/colima.yaml(default是Colima的默认实例名称);
重新停止并重启Colima:colima stop && colima start;
若仍未显示,执行重建实例命令:colima delete default -f && colima start,重建后重新配置加速。
✅ 原因:Colima未启动,或Docker上下文未自动切换。
✅ 解决方案:
启动Colima:colima start;
查看Docker上下文:docker context ls,确保当前上下文为“colima”;
若上下文不是colima,执行docker context use colima切换,再重新执行Docker命令。
✅ 原因:Docker Desktop残留的socket文件(/private/var/run/docker.sock)与Colima冲突。
✅ 解决方案:彻底卸载Docker Desktop,删除残留文件:
bash# 删除残留socket文件
sudo rm /private/var/run/docker.sock
# 停止并重启Colima
colima stop -f && colima start
对于Mac M2用户来说,Colima + Docker CLI的组合,是替代Docker Desktop的最优解——轻量、开源、免费,且适配性拉满。本文通过详细的步骤,完成了从Homebrew安装Colima、Docker CLI,到启动Colima服务、配置指定镜像加速的全过程,重点强调了YAML配置的缩进问题(最容易踩坑),以及常见问题的解决方案。
核心要点回顾:
Colima配置Docker镜像加速,需修改~/.colima/default/colima.yaml,而非/etc/docker/daemon.json;
YAML配置必须用空格缩进,禁用Tab,否则会导致Colima启动失败;
配置完成后,重启Colima即可生效,用docker info | grep -A 5 "Registry Mirrors"验证;
3个加速地址覆盖了Docker Hub和GHCR,解决国内拉取镜像慢、超时的问题。
按照本文步骤操作,新手也能轻松搭建Mac M2的Docker开发环境,后续使用Docker命令和之前完全一致,无需额外适应。如果在操作过程中遇到其他问题,可在评论区留言,我会及时回复解答。
(注:文档部分内容可能由 AI 生成)
本文作者:JACK WEI
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!