🌈

WWDC25 発表の apple/containerをmacOS15で動かしてみた

に公開

はじめに

つい先ほど、macOSでのコンテナ環境に新しい選択肢が登場しました。
Appleが提供する apple/containerは、macOS上でLinuxコンテナを動かすための新しいツールです。今回は、このツールをmacOS 15で実際に動かしてみた結果をまとめます。

https://github.com/apple/Container

container relies on the new features and enhancements present in the macOS 26 Beta 1. You can run the tool on macOS 15, but the container maintainers typically will not address issues discovered on macOS 15 that cannot be reproduced on the macOS 26 Beta 1.

READMEにある通り、macOS 15で起きた問題において、macOS 26で再現しないならメンテナーは対応しないようです。
推奨はmacOS 26 Beta 1以降なので、本格的に使う場合はmacOS 26以降にアップグレードすることをおすすめします。

apple/containerとは

apple/containerOCI準拠のコンテナランタイムです。Swiftで実装されており、macOS上でネイティブに動作するという特徴があるようです。

環境構築

https://github.com/apple/Container

Download the latest signed installer package for container from the GitHub release page.
To install the tool, double click the package file and follow the instructions. Enter your administrator password when prompted, to give the installer permission to place the installed files under /usr/local.

リリースページからダウンロードできるとのことなので、READMEに従ってインストールを行います。


container-0.1.0-installer-signed.pkgをダブルクリックしてインストール

完了後、以下のコマンドでcontainerを起動します。

container system start


コマンドがcontainerなの、かっこいいですね

初回起動時には、以下のような設定が行われるようです。

  1. APIサーバーの起動確認
  2. ベースコンテナファイルシステムのインストール
  3. デフォルトカーネルのインストール(Kata Containersのカーネルを使用)

※ Kata Containersはオープンソースプロジェクトです。「OCIランタイム」の一つで、Dockerではruncと呼ばれるOCIランタイムがこれに対応しています。

https://katacontainers.io/
https://www.docker.com/ja-jp/blog/runc/

実際に動かしてみる

準備が終わったので、今回は、タイトルの通りmacOS 15でapple/containerを試してみます。以下の手順でNginxコンテナを起動し、基本的な操作を確認します。

Nginxコンテナの起動

実際にNginxコンテナを起動してみます。

# Nginxコンテナを起動
container run --name my-nginx --detach --rm nginx:latest

# 起動したコンテナの確認
container ls


コンテナには自動的にプライベートIPアドレス(192.168.64.2)が割り当てられました

コンテナの詳細情報確認

inspectコマンドで詳細な情報を確認できます:

container inspect my-nginx


見づらいですがarchitectureなどの情報が確認できます

コンテナ内でのコマンド実行

コンテナ内でコマンドを実行して、Nginxが正常に動作していることを確認します:

container exec my-nginx curl localhost

Nginxのデフォルトのレスポンスが返ってきていますね 🎉

気づいた制限事項

ネットワークの制限

ホストからコンテナへの直接アクセスができませんでした

# これは失敗する
curl http://192.168.64.2
ping -c 3 192.168.64.2  # 100% packet loss

There are significant networking limitations that impact the usability of container on macOS 15.

このように、macOS 15ではネットワーク周りの機能に制限があるようです。コンテナはプライベートIPアドレスを持っていますが、ホストからのアクセスはできませんでした。
macOS 26で試せばアクセスできるのでしょうか?試した方がいれば教えていただきたいです。

まとめ

apple/containerは、macOS上でLinuxコンテナを動かすための興味深い選択肢です。現時点ではネットワーク周りの機能に制限があるものの、Appleの仮想化技術を活用した高速な動作は魅力的です。

開発中のツールということもあり、プロダクション環境での利用は推奨されませんが、新しい技術に興味がある方は試してみる価値があると思います。

参考リンク

Discussion