从Docker Desktop迁移到Colima记录
最近折腾了一把,把本机 Docker Desktop 卸掉,切到了 Colima。
主要原因很简单:公司合规策略不允许继续使用 Docker Desktop。
这篇就当个流水账,给未来的自己留个复盘。
1. 背景
- 公司对 Docker Desktop 的使用有合规限制。
- 本机需要保留容器开发能力(至少能跑 Redis / MariaDB)。
- 目标是:
- 不用 Docker Desktop
- 用 Colima + Docker CLI
docker compose可用
2. 卸载 Docker Desktop
先确认:
1 | brew list | grep -i docker |
如果还有残留进程,先停掉再卸载。Homebrew 卸载命令:
1 | brew uninstall --cask docker-desktop |
如果卡在系统权限(com.docker.vmnetd 之类),可以手动处理系统残留:
1 | sudo pkill -f com.docker.vmnetd || true |
最后再次确认:
1 | brew list | grep -i docker || echo "已无 docker" |
3. 安装 Colima
安装并启动:
1 | brew install colima docker |
说明:资源参数只需要首次(或改配置时)设置,之后日常
colima start即可。
确认 context:
1 | docker context ls |
如果看到当前是 colima *,并且 endpoint 是 ~/.colima/default/docker.sock,就对了。
4. docker compose 报 unknown command 的坑
现象:
1 | docker compose version |
原因:安装了 docker-compose 插件,但 Docker CLI 没扫描到 Homebrew 插件目录。
修复:在 ~/.docker/config.json 增加:
1 | { |
验证:
1 | docker compose version |
兼容旧命令(可选):
1 | # ~/.zshrc |
5. 防止忘记先启动 Colima
在 ~/.zshrc 里加一个轻量保护:
1 | docker() { |
这样你直接敲 docker ... 时,如果 Colima 没启动,会给明确提示,不会莫名其妙报 socket 错误。
6. Docker Hello 验证启动
迁移完成后,先用一个无状态容器做最小验证,确认 Docker CLI 与 Colima 已正常联通。
1 | docker run --rm hello-world |
如果输出里看到 Hello from Docker!,说明容器运行链路已经正常。
也可以再补一条查看运行时信息:
1 | docker info |
7. 小结
这次迁移的关键点其实就三个:
- 不要混淆 Docker Desktop socket 和 Colima socket。
docker compose不可用时,优先检查插件目录是否被 Docker CLI 扫描。- 给 shell 加一个“Colima 未启动提醒”,能省很多排查时间。
到这里,本机容器环境已经完全不依赖 Docker Desktop 了,日常开发够用。