# 在 macOS 用 OrbStack 跑 Docker 與 Linux 機器

> OrbStack 是 Docker Desktop 的輕量替代，啟動快、吃資源少，還能順便跑 Linux 機器與 Kubernetes。

原文：https://sheng.page/posts/orbstack-docker-and-vms-on-macos/ · 發布：2024-10-20 · 作者：Sheng

在 macOS 上跑 Docker，Docker Desktop 不是唯一選擇。最近把開發機換成 OrbStack，啟動快、風扇安靜、電池也撐得久。這篇記錄它好用在哪、怎麼開始。

## 為什麼想換掉 Docker Desktop

Docker Desktop 在 macOS 底層是一台 Linux VM，開起來慢、長駐吃 CPU 與記憶體，筆電電池掉得明顯，較大的組織還有授權問題。日常只是想 `docker run` 一下，卻要養一台沉重的 VM。

OrbStack 想解的就是這件事：一樣提供 Docker engine，但更輕、更快、更省電。

## OrbStack 是什麼

官方定位是「跑 container 與 Linux 機器的快速、輕量、簡單方式」，把 Docker Desktop 與 WSL 的角色合在一個 app 裡。幾個實際感受得到的點：

- 啟動約 2 秒，原生 Swift 寫的，CPU / 磁碟 / 記憶體佔用都低，對電池友善。
- 直接相容 `docker` / `docker compose` CLI，engine 換成 OrbStack，指令照舊。
- 能從 Docker Desktop 或 Colima 自動遷移，過渡幾乎無痛。

## 跑 Docker

安裝後（[orbstack.dev](https://orbstack.dev/) 下載，或 `brew install --cask orbstack`），開著 app，`docker` 就直接能用：

```bash
# 沿用既有 compose 範本，clone 下來改一下就跑
git clone https://github.com/yshengliao/docker-compose-templates
cd docker-compose-templates/mysql
docker compose up -d
```

兩個省事的地方：每個 container 會自動拿到一個網域，像 `<容器名>.orb.local`，不用記 port 對應；volume 與 image 可以直接在 Finder 裡開，檔案存取是原生的。

## 跑 Linux 機器（VM）

OrbStack 不只是 Docker，也能開完整的 Linux distro，當作隨手可丟的開發沙盒：

```bash
orb create ubuntu        # 建一台 Ubuntu
orb                      # 進入預設機器的 shell（或用 SSH）
```

機器跟 macOS 雙向共享檔案，要跑 amd64 的東西也有 x86 模擬（Rosetta）。需要「一台真的 Linux」測東西時，比起架一台傳統 VM 省事很多。需要 Kubernetes 也可以在設定裡開，不必另外裝。

## 順手的地方

- 自動網域 `*.orb.local`、雙向檔案共享、USB 直通、SSH / VPN 都內建。
- menu bar 開關 + CLI / headless 模式，CI 也能用。
- 風扇與電池差異最有感：長時間掛著 container 也不會一直燒 CPU。


## 補充筆記

- OrbStack 是 Docker Desktop 的輕量替代：啟動快、省資源、省電，`docker` 指令完全相容。
- 一個 app 同時管 container、Linux 機器與 Kubernetes，還能自動從 Docker Desktop 遷移。
- container 自動拿 `*.orb.local` 網域、volume 可在 Finder 原生存取，日常開發流暢。
- 要「一台真 Linux」時 `orb create` 一行就好，含 x86 模擬。
- 搭配既有 [docker-compose-templates](https://github.com/yshengliao/docker-compose-templates) 起服務，clone、改、`docker compose up` 就上。

---

> Sheng 撰寫，Claude 協助文字與範例 · 環境 macOS + OrbStack（2024 下半年） · 列入 20260613 blog 翻新計劃，新漆未乾。