Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第127回NearMe技術勉強会 -Apple Containerについて調べて触ってみた-

第127回NearMe技術勉強会 -Apple Containerについて調べて触ってみた-

2025年8月1日に開催した第127回NearMe技術勉強会での発表資料です。

WWDC2025でAppleから発表された新しいコンテナ技術「Apple Container」。
この資料では、Apple Containerがどのような技術なのか、その特徴やDockerとのアーキテクチャの違いを解説します。
さらに、実際にmacOSへインストールし、Dockerfileを使って簡単なWebサーバーを起動するまでの手順をステップバイステップで紹介。
最後に、現時点でのDockerとの使い分けや可能性について考察します。

Apple Silicon搭載Macでの開発効率を上げたい方はぜひご覧ください。

#AppleContainer #コンテナ #Docker #macOS #AppleSilicon #Swift #WWDC2024 #NearMe

More Decks by NearMeの技術発表資料です

Other Decks in Programming

Transcript

  1. 2 1. Apple Container とは → Apple Silicon への最適化と⾼速なパフォーマンスを実現したコンテナ技術!! →

    OS カーネルを共有するわけではなく、コンテナごとに独⽴した軽量な VM を利⽤する • apple/containerization ◦ https://github.com/apple/containerization ◦ Apple Container 実現のための核となる Swift で書かれたフレームワーク • apple/container ◦ https://github.com/apple/container ◦ Docker CLI のように、containerization を利⽤しやすいように作られた CLI
  2. 3 1. Apple Container とは • Docker と Apple Container

    との⽐較 項目 Apple Container Docker 主な目的 macOSでの開発体験とセキュリティ向上 サーバー環境の再現・ポータビリティ 発表 WWDC2025 2013年 動作の仕組み macOS上でネイティブ動作 Linuxの仮想マシン上で動作 アーキテクチャ コンテナごとに独立した軽量 VM OSカーネルを共有 セキュリティ 非常に高い(完全な分離) 比較的高い ターゲット Appleプラットフォーム開発者 サーバーサイド開発者全般 エコシステム XcodeやSwiftとの連携を重視 巨大なオープンソースコミュニティ (Docker Hub) 現状の用途 macOSアプリの開発、テスト、安全なツー ル実行 Webアプリ、DB等の本番環境
  3. 5 2. Apple Container を試す 1. Apple Container の releases

    ページにとぶ → https://github.com/apple/container/releases 2. 最新バージョンの Assets から好きなインストール⽅法にてインストール → ⼤体は pkg が良いと思います → 私は container-0.3.0-installer-signed.pkg にてインストールしました
  4. 6 2. Apple Container を試す 3. システムサービスを以下のコマンドでスタートする   → 途中で以下のようなものが出てくるので、問題なければ

    “Y” を選択する container system start Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/ kata-static-3.17.0-arm64.tar.xz]? [Y/n]
  5. 7 2. Apple Container を試す 4. コンテナのリストを表⽰してみる   → 以下のような出⼒になる

    ※使うことができるコマンドは container --help にて確認することができます container list --all ID IMAGE OS ARCH STATE ADDR
  6. 8 2. Apple Container を試す 5. 新しいディレクトリを作成し、そこに以下の Dockerfile を作成する  

    → Python バックエンドサーバーを簡単に⽴ち上げるコンテナファイル FROM docker.io/python:alpine WORKDIR /content RUN echo '<!DOCTYPE html><html><head><title>Hello</title></head><body><h1>Hello, world!</h1></body></html>' > index.html CMD ["python3", "-m", "http.server", "80", "--bind", "0.0.0.0"]
  7. 10 2. Apple Container を試す 7. ビルド済みコンテナを以下のコマンドで起動する   → 起動しているかどうかは、container

    ls にてチェックできる container run --name my-web-server --detach --rm web-test % container ls ID IMAGE OS ARCH STATE ADDR buildkit ghcr.io/apple/container-builder-shim/builder:0.6.0 linux arm64 running 192.168.64.2 my-web-server web-test:latest linux arm64 running 192.168.64.3
  8. 14 3. Apple Container を触ってみて • Docker の完全置き換えとはまだなっていなさそう ◦ コマンドなどは割と

    Docker CLI と同じ操作感でいける ◦ 公式での GUI はまだない(スライド作成時点) ◦ Docker Compose のようなものはサポートしていない ▪ 複数コンテナ起動はできるが、⼀気に起動などする場合には別途⾃作スクリプ ト必要 • Claude Code や Gemini-CLI を動かすには良さそう ◦ コンテナ同⼠を独⽴させているので、独⽴した環境で異なることを⽣成 AI にどん どんやらせたい時に使いやすそう • まだ触り始めたばかりであるので、Docker と Apple Container どちらが良いかはこれ からみていきたい