Oxcart ダウンロード
メニュー

Docker DesktopやOrbStackからOxcartへ移行する

Oxcartへの移行は数分でできます。インストール後にdocker context use oxcartを実行し、docker save、docker load、tarファイルで残したいイメージとボリュームを移します。OxcartはDocker DesktopやOrbStackと共存し、dockerツールを置き換える前に確認します。コマンド1つで元に戻せます。

更新日

始める前に

  • macOS 26以降のAppleシリコンMac。
  • イメージとボリュームのコピー中にコンテキストが応答するよう、移行元アプリを起動しておきます。
  • 本当に必要なものを整理します。再度pullできないイメージと、データ(データベース、アップロードファイル)が入った名前付きボリュームです。それ以外は作り直すほうが早く済みます。
  • まず代表的なComposeプロジェクトを1つ試します。サービスが起動し、データが揃い、公開ポートが応答することを確認してから残りを移します。

Oxcartへの移行手順

  1. Oxcartをインストールします。 Oxcart(Appleシリコン、macOS 26以降)をダウンロードして開きます。セットアップはオフラインで数秒で完了します。コマンドラインツールをリンクするヘルパーのために、管理者パスワードを1回入力します。
  2. dockerツールをどうするか決めます。 Docker DesktopやOrbStackがdockerをインストールしている場合、Oxcartは各ツールの両方のバージョンを表示し、置き換え前に確認します。Replaceは既定でオンです。Uninstallを実行すると、ほかのアプリのツールを復元します。
  3. oxcartコンテキストを選びます。 セットアップはoxcart Dockerコンテキストを作成します。現在のコンテキストがdefaultで、何も応答しない場合にだけ切り替えるため、ほかのアプリから移る場合は通常、自分でdocker context use oxcartを実行します。
  4. 必要なイメージを移します。 再度pullするか、ほかのアプリのdocker saveをdocker loadへストリームで渡します。タグとダイジェストは維持されます。
  5. データのあるボリュームを移します。 移行元アプリの小さなコンテナを使って各名前付きボリュームをtarファイルにまとめ、Oxcartの新しいボリュームに展開します。
  6. Composeプロジェクトを起動します。 各プロジェクトフォルダーでdocker compose up -d --waitを実行します。同じ名前で移したボリュームが使われます。
  7. 接続先が固定のツールをOxcartに向けます。 Dockerコンテキストに従うツールは自動でOxcartを見つけます。DOCKER_HOSTだけを読むツールでは、これをoxcartコンテキストのエンドポイントに設定します。

コマンド

コンテキストを確認して切り替える

docker context ls

一覧にoxcartとほかのアプリのコンテキストが表示され、現在のコンテキストにはアスタリスクが付きます。続いて次を実行します。

docker context use oxcart

ほかのアプリからイメージをコピーする

中間ファイルを作らずに、イメージを一方のエンジンからもう一方へ直接ストリーム転送します。タグとダイジェストも引き継がれます。

# OTHER is the other app's context name from `docker context ls`
OTHER=<other-context>
docker --context "$OTHER" save postgres:17-alpine myapp:dev | docker --context oxcart load

タグ付きイメージをすべて一度に移すには:

docker --context "$OTHER" images --format '{{.Repository}}:{{.Tag}}' | grep -v '<none>' \
  | xargs docker --context "$OTHER" save | docker --context oxcart load

Dockerfileからビルドしたイメージは、Oxcartでdocker buildやdocker compose buildを使って再ビルドするほうが速いことも多くあります。ベンチマークでは、キャッシュを使った再ビルドは121 msでした。

名前付きボリュームを移す

この例では、pgdataというPostgresボリュームを移します。tarファイルはホームフォルダー内のフォルダーに書き出します。Oxcartは既定でホームフォルダーをコンテナと共有しており、移行元アプリでもそのフォルダーをバインドマウントできる必要があります。コピーの整合性を保つため、先にそのボリュームを使用するコンテナを停止してください。

mkdir -p ~/volume-move && cd ~/volume-move
# 1. Pack the volume in the other app
docker --context "$OTHER" run --rm -v pgdata:/from -v "$PWD":/backup alpine \
  tar -C /from -czf /backup/pgdata.tgz .
# 2. Unpack it into a new volume in Oxcart
docker --context oxcart volume create pgdata
docker --context oxcart run --rm -v pgdata:/to -v "$PWD":/backup alpine \
  tar -C /to -xzf /backup/pgdata.tgz

Composeはボリュームに<project>_<volume>という名前を付けます。同じ完全名でOxcartにボリュームを作れば(移行元のコンテキストでdocker volume lsを確認)、Composeがそのボリュームを使います。

Composeプロジェクトを起動する

cd ~/code/myproject
docker compose up -d --wait

ヘルスチェックによる依存関係、up --wait、サービス名DNS、init: true、network_mode: service:はこれまでどおり使えます。AppleシリコンでDocker Composeを使うをご覧ください。

DOCKER_HOSTを読むツール

Oxcartは/var/run/docker.sockを作成・置換しません。docker CLI、Compose、Buildx、ほとんどのSDKは現在のコンテキストに従います。DOCKER_HOSTだけを読むツールでは、次のようにOxcartを指定します。

export DOCKER_HOST="$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}')"

コンテナ内では、Testcontainers、docker-outside-of-docker、Portainer、Traefik用の/var/run/docker.sockマウントを通常どおり利用できます。MacでDev ContainersとTestcontainersを使うをご覧ください。

元に戻す

docker context use <other-context>   # back to the other app
docker context use oxcart            # and to Oxcart again

移行後に変わること

1台のAppleシリコンMacで測定。中央値、低いほど良好
操作Oxcart 0.1.2OrbStack 2.2.3Docker Desktop 4.94.0
docker run --rm … true42.3 ms220 ms143 ms
docker stop19.2 ms107 ms128 ms
20個のコンテナを停止・削除76.7 ms1,224 ms683 ms
キャッシュを使ったビルド121 ms283 ms149 ms

Oxcart 0.1.2は2026-10-10に同梱のdocker 29.9クライアントで測定しました。OrbStack 2.2.3とDocker Desktop 4.94.0は同日のそれ以前に、同じMacと測定ハーネスを使い、docker 29.4で測定しました。全データはDocker Desktopとの比較とOrbStackとの比較をご覧ください。

さらに、コーディングエージェント向けのローカルMCPサーバー(1回の貼り付けで設定)、リポジトリとブランチごとにまとまったポート、VPN・DNS・ファイアウォールのルールに従うコンテナ通信も利用できます(ネットワークガイド)。

よくある質問

先にDocker DesktopやOrbStackをアンインストールする必要はありますか?

いいえ。Oxcartは独自のoxcart Dockerコンテキストを持ち、ほかのアプリと共存できます。docker context useで切り替えます。必要なものの移行が終わるまで、移行元アプリを残しておいてください。

Oxcartは現在のDockerコンテキストを変更しますか?

現在のコンテキストがdefaultで、何も応答しない場合のみ変更します。ほかのアプリのコンテキストが選択されていれば変更せず、自分でdocker context use oxcartを使って選びます。

イメージとボリュームは自動で移りますか?

いいえ。各アプリは独自のイメージとボリュームを保持します。イメージは再度pullするか、docker save | docker loadでストリーム転送します。データの入った名前付きボリュームは、上記のとおりtarファイルで移します。キャッシュなど使い捨てのデータが入ったボリュームは、作り直すだけで構いません。

レジストリのログイン情報はどうなりますか?

pull時に認証情報を求められたら、docker loginを1回実行します。Oxcartはdocker-credential-osxkeychainを通じてパスワードをmacOSキーチェーンに保存し、config.jsonにはレジストリ名だけを残します。

今の開発ワークフローを維持できますか?

はい。docker CLI、Compose、Buildx、Dev Containers、Testcontainersを引き続き使えます。OxcartはComposeのprivileged: trueを含め、特権コンテナをサポートしています。まず1つのプロジェクトを移し、ポートとデータを確認してから、準備ができた時点で残りを切り替えてください。移行中も、ほかのDockerコンテキストは利用できます。

更新してもコンテナは残りますか?

はい。Oxcartの更新では、すべてのコンテナ、イメージ、ボリューム、ネットワークを維持します。

元に戻すには?

ほかのアプリのコンテキスト名を指定してdocker context useを実行します。Oxcartをアンインストールすると、Uninstallは置き換えたdockerツールをすべて元に戻します。

出典と測定方法

  • セットアップ、コマンドラインツール、Dockerコンテキスト:出荷版Oxcart 0.1.3に基づきます。
  • 互換性:2026-10-10にOxcartでテスト(タグとダイジェストを保ったsave/load、Compose、コンテナ内Dockerソケット)。
  • ベンチマーク:Oxcart 0.1.2、OrbStack 2.2.3、Docker Desktop 4.94.0を2026-10-10に1台のApple M5 Maxで測定。各8 CPU・12 GB、製品を1つずつ実行、5回測定の中央値。
  • ほかのアプリのコンテキスト名はアプリやバージョンによって異なります。docker context lsで確認してください。

自分のプロジェクトで Oxcart を試す

60日間無料。その後は1ユーザー・1メジャーバージョンあたり $20。サブスクリプションではありません。

Apple silicon · macOS 26 以降

次に読む

リリースノート

Oxcart 0.1.4

最新リリース

ライセンス機能と各種改善。

  • メールの安全なリンクによるライセンスの有効化。
  • SettingsからライセンスとMacを管理。
  • ライセンスのオフライン検証。
  • パフォーマンス改善、UIの調整、不具合修正。

macOS 26.0以降が必要です

Oxcart 0.1.3

アイドル時のメモリ回収。

  • コンテナが実行されていないときに、VMのメモリを回収。
  • コンテナ、イメージ、ボリューム、ネットワークを保持。

macOS 26.0以降が必要です

Oxcart 0.1.2

コマンドラインツールの統合。

  • Oxcart付属のDockerツールと、すでにインストールされているDockerツールを切り替え。
  • UIの調整。

macOS 26.0以降が必要です

Oxcart 0.1.1

同梱のDockerツールとエージェントの制御。

  • Docker CLI 29.9、Compose 5.6、Buildx 0.38を同梱。
  • Dockerコンテキストとの連携と、キーチェーンでの認証情報の安全な保管。
  • MCPエージェントの接続と、エージェントごとの権限設定・ブロック。

macOS 26.0以降が必要です

Oxcart 0.1.0

Appleシリコン向けのDocker互換コンテナ。

  • Docker CLI、Compose、Buildxとの互換性。
  • 実行環境のコンポーネントを同梱し、オフラインでセットアップ可能。
  • プロジェクトとGitブランチごとにポートを整理。
  • デフォルトで読み取り専用のMCP連携。
  • 検証済みの自動アップデート。

macOS 26.0以降が必要です