記事一覧 2026-06-29

CONTAINER

Apple containerを実務目線で整理する

Appleのcontainerは、Dockerの単純な置き換えというより、Apple silicon MacでOCI互換のLinuxコンテナを軽量VMとして動かすための新しいローカル実行環境だ。

Takeaway

まずは単発コンテナ、1つのDockerfile、1つのcontainer machineで試す。Compose中心の開発を丸ごと移す前に、ネットワーク、volume、build cacheの差分を見る。

01

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である。

02

各コンテナを軽量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を使った開発資産と接続できる点が重要である。

03

container machineは長く使うLinux作業環境

1.0.0の目玉はcontainer machineである。これは短命なアプリ実行コンテナではなく、Linux環境そのものを開発用に持つ仕組みだ。

Mac側のエディタでrepoを編集し、Linux側でビルドやテストを実行する。ユーザー名とホームディレクトリが対応づくため、ファイルコピーなしで同じ作業ツリーを両側から扱える。

Linux依存のビルド、複数distroでの挙動確認、systemd付きimageでのサービス検証、M3以降でのnested virtualization実験などに向く。

04

使いどころはDocker代替だけではない

軽めの個人開発

小さなWebアプリ、CLI、バックエンドのローカル検証では、container runcontainer 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を見る。

05

乗り換え前に見るべき差分

最大の制約は環境条件だ。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の順でよい。全部のローカル開発を一度に移す必要はない。

06

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対応、低レイヤ機能。