世界を動かす技術を、日本語で。

コンテナ: AppleのLinuxコンテナランタイム

概要

container container は、Apple Silicon搭載Macで動作する軽量なLinuxコンテナ仮想マシン管理ツール Swift製 で、OCI準拠コンテナイメージの入出力に対応 macOS 26 Beta 1 向けに最適化されており、macOS 15では制限あり インストール・アンインストール 手順が明確に用意 コントリビューション も積極的に歓迎

container containerの概要

  • container container は、Apple Silicon Mac上で Linuxコンテナ を仮想マシンのように実行可能なツール
  • Swift で実装され、Apple Silicon環境での最適化
  • OCI準拠 のコンテナイメージを利用・生成可能
  • Containerization Swiftパッケージ を用いた低レベルのコンテナ・イメージ・プロセス管理
  • 標準コンテナレジストリ からイメージのpull・pushが可能
  • 他のOCI準拠アプリケーションでもイメージ利用が可能

必要要件

  • Apple Silicon Mac が必須
  • macOS 26 Beta 1 での動作を推奨
    • macOS 15でも動作可能だが、 ネットワーク面での制限サポート対象外の問題 あり
  • ビルド手順は BUILDINGドキュメント を参照

インストール・アップグレード手順

  • 既存バージョンからのアップグレード時は、 ユーザーデータを保持 しつつアンインストール
    • コマンド例: uninstall-container.sh -k
  • 最新の 署名済みインストーラパッケージ をGitHubのリリースページからダウンロード
  • パッケージファイルをダブルクリック してインストール
    • インストール時に 管理者パスワード が必要
    • インストール先は/usr/local

アンインストール方法

  • uninstall-container.sh スクリプトで削除
    • ユーザーデータも削除: uninstall-container.sh -d
    • ユーザーデータ保持: uninstall-container.sh -k

次のステップ・学習リソース

  • チュートリアル でWebサーバーイメージのビルド・実行・公開まで体験可能
  • 各種機能解説技術概要 ドキュメントを参照
  • APIドキュメント も公開

コントリビューションについて

  • container への貢献は大歓迎
  • 詳細は CONTRIBUTINGガイド を参照

Hackerたちの意見

コンテナは軽量なVMを作成することでOCI(docker)互換で動作します。このリポジトリには、コンテナ化を利用したコマンドラインインターフェースが含まれていて、SwiftフレームワークがVirtualization.frameworkをラップしてOCIランタイムを実装しています。

自分の無能さをさらけ出すけど、Mac OSのネイティブな方法でLinux VMを実行するのがどうしてもできなくて、vm-ware fusionを使っちゃった。もっとアクセスしやすいパッケージがdocker desktopや、たぶん放置されるであろうvmwareの非エンタープライズライセンスよりも利用できて嬉しいよ。

これ、https://news.ycombinator.com/item?id=44229348 と統合した方がいいかも。

いや、違うと思う。あれは別物だし、(ここでのコンテナじゃなくて)コンテナ化の方が新しくて面白いと思う。もっと議論を集中させた方がいいけど、今はコンテナツールについて混乱してるコメントが多いね。

SwiftはRustの代替として実際どうなの?実現可能なのかな?覚えてる限りでは、APIが全部変な名前なのが不満だった。普通の名前じゃなくて、Appleのレガシーな名前が使われてるメソッドやクラスが多い。

何をするかによるね。システムコードを書くなら、Swiftはメモリの割り当てが多すぎて、あんまり向いてないかも。埋め込み用のSwiftを作ろうとしてるけど、進捗はかなり遅い。誰かが昇進するためのものじゃないからね。何かを書きたいだけなら、個人の好みやエコシステムにあるものによるよ。

パフォーマンスについてはあまり語れないけど、言語をレースするわけじゃないからね。でも、感触とかはすごく似てるよ。Rustで働いてた人とSwiftで働いてた人が結構重なってるし。Graydonは両方で働いてたから、SwiftはRustに似てる部分が多いんだ。私がいつも言うのは、SwiftはC#にRustの好きなところをほぼ全部詰め込んだ感じ。レガシーな名前は、UIKitみたいなプラットフォームAPIとやり取りする時に出てくることが多いと思う。Objective-CのAPIからもっとスウィフティなAPIにアップデートされてないからね。

RustとSwiftはお互いから結構借りてる部分があるよね(言葉遊びのつもり)。クロスプラットフォームの互換性や「サーバーサイドSwift」が最近の導入だから、Swiftを使う機会はなかったな。比較すると、ARCで全てをボックス化したRustに一番近いと思う(ライフタイムが入るときに計画されてるもの)。良いランタイムとパフォーマンスが得られるよ。

新しいSwiftのライブラリやAPIの多くには、君が考えてるようなレガシーな「NS」プレフィックスはないよ。

カテゴリの後に実装を呼ぶのは賢いことなの?それとも何か誤解してる?これを商標登録することはできないよね?

これは製品じゃなくて、OSの一部みたいなコマンドラインツールだよ。派手な名前はいらないね。

その通りだね。これは言葉の意味をAppleの実装に寄せようとする、すごく皮肉な決定だよ。だって、会社の名前が「Apple」なんだから。この手の言語を削るようなマーケティングは、彼らのDNAに組み込まれてるよね。

関連するスレッド:ContainerizationはmacOS上でLinuxコンテナを実行するためのSwiftパッケージ - https://news.ycombinator.com/item?id=44229348 - 2025年6月(158コメント)AppleがFoundation ModelsとContainerizationフレームワークなどを発表 - https://news.ycombinator.com/item?id=44226978 - 2025年6月(346コメント)(通常は統合するけど、これらの間には微妙だけど重要な違いがあるみたい)

別のスレッドじゃなくて、ちゃんとした場所にクロスポスティングするよ: 最初は、仮想化フレームワークとファイアクラックスタイルの軽量カーネルが混ざった感じに聞こえた。このプロジェクトは独自のカーネルを持ってるけど、ファイアクラックのカーネルも使えるみたい。どんな利点があるんだろう?もっと小さいのかな?Appleシリコンの特性を活かしてる?もう試した人いる?速いのかな?LinuxのpodmanやMac用のDocker Desktopと比べてどう?

これって、App StoreからダウンロードしたiOSやMacOSの隣でコンテナを動かすことができるようになるの?

macOSでLinuxのVMを動かすためにlimaを使ってるんだけど、この新しいAppleのツールはすごく似てるから、limaをこれに置き換えるかもしれない。

残念ながら、iPadOSでは使えないね。

これをDockerと統合できるようになるのかな?Mac上のDockerコンテナがもっとパフォーマンス最適化されるといいんだけど。

jzelinskieによると、はい: https://news.ycombinator.com/item?id=44229248