CONTAINER
Apple containerを実務目線で整理する
Appleのcontainerは、Dockerの単純な置き換えというより、Apple silicon MacでOCI互換のLinuxコンテナを軽量VMとして動かすための新しいローカル実行環境だ。
Takeaway
まずは単発コンテナ、1つのDockerfile、1つのcontainer machineで試す。Compose中心の開発を丸ごと移す前に、ネットワーク、volume、build cacheの差分を見る。
CLIとSwiftパッケージを分けて理解する
普段の開発者が触るのはcontainer CLI。低レイヤを支えるのがSwift製のContainerizationパッケージである。
| 名前 | 役割 | 主な利用者 |
|---|---|---|
container |
Linuxコンテナの実行、build、push、管理を行うCLI。 | ローカル開発環境の利用者。 |
Containerization |
OCI、registry、root filesystem、軽量VM、プロセス管理を扱うSwift API。 | コンテナ基盤をSwiftから組み込みたい開発者。 |
2026-06-29時点で確認した最新のcontainerリリースは1.0.0で、2026-06-09に公開されている。要件はApple silicon Macで、公式README上のサポート対象はmacOS 26である。
各コンテナを軽量VMとして動かす
一般的なmacOS上のLinuxコンテナ環境は、1つのLinux VMの中で複数コンテナを動かす。Appleのcontainerは、コンテナごとに軽量VMを起動する設計を取る。
分離
各コンテナがVM相当の境界を持つため、共有VM型よりセキュリティ境界を説明しやすい。
共有の最小化
hostのファイルは必要なコンテナにだけmountする。大きな共有VMへまとめて渡す前提ではない。
macOS統合
Virtualization framework、vmnet、XPC、launchd、Keychain、unified loggingと統合されている。
それでもイメージ形式はOCI互換であり、独自形式に閉じているわけではない。既存のDockerfileやregistryを使った開発資産と接続できる点が重要である。
container machineは長く使うLinux作業環境
1.0.0の目玉はcontainer machineである。これは短命なアプリ実行コンテナではなく、Linux環境そのものを開発用に持つ仕組みだ。
Mac側のエディタでrepoを編集し、Linux側でビルドやテストを実行する。ユーザー名とホームディレクトリが対応づくため、ファイルコピーなしで同じ作業ツリーを両側から扱える。
Linux依存のビルド、複数distroでの挙動確認、systemd付きimageでのサービス検証、M3以降でのnested virtualization実験などに向く。
使いどころはDocker代替だけではない
軽めの個人開発
小さなWebアプリ、CLI、バックエンドのローカル検証では、container runとcontainer buildで十分な場面がある。作ったimageは標準registryにpushできる。
Linux依存のビルド環境
glibc / musl差分、systemd前提のservice、OS別native dependencyなど、macOSだけでは確認しづらい条件をMac上で再現しやすい。
x86_64 imageの確認
ContainerizationはRosetta 2によるlinux/amd64コンテナ実行に対応している。Apple silicon上でx86_64向けimageを試したい場合に候補になる。
Swiftからの組み込み
自作ツールやアプリにコンテナ実行基盤を組み込みたい場合は、CLIではなくContainerizationのAPIを見る。
乗り換え前に見るべき差分
最大の制約は環境条件だ。Apple siliconとmacOS 26が前提であり、macOS 15にはネットワークまわりなどの制限がある。チーム利用では、全員のMacが条件を満たすかを先に見る必要がある。
また、Docker Desktop、Colima、OrbStackの完全置き換えとして判断するなら、次の項目を自分のrepoで検証したほうがよい。
- Compose相当の複数サービス運用をどう扱うか。
- network、DNS、port publishの挙動が既存環境と合うか。
- volume mountの権限、速度、ファイル監視が問題ないか。
- build cacheとmulti-platform buildの速度が許容できるか。
- CIや本番runtimeへpushしたimageがそのまま動くか。
導入判断は、まず単発実行、次に1つのDockerfile、最後にcontainer machineの順でよい。全部のローカル開発を一度に移す必要はない。
Sources
| Source | Use |
|---|---|
| Apple Open Source: Containerization | Apple公式の位置づけとプロジェクト概要。 |
| apple/container README | CLIの目的、要件、インストール方法、OCI互換性。 |
| apple/container Technical Overview | 軽量VM設計、macOS統合、制限事項。 |
| apple/container Container machine | 永続的Linux環境としての使い方。 |
| apple/container 1.0.0 release | 最新リリース日とcontainer machine追加の確認。 |
| apple/containerization README | Swift API、Rosetta 2対応、低レイヤ機能。 |