この進行中の Docker Labs GenAI シリーズ AI開発者ツールのエキサイティングな空間を探ります。 Dockerでは、誇大広告なしでオープンに探求できる広大な範囲があると信じています。 私たちは探索を共有し、開発者コミュニティとリアルタイムで協力します。 開発者はGitHub Copilotのようなオートコンプリートツールを採用し、チャットを使用していますが、AIツールがソフトウェアのライフサイクル全体を通じて、より具体的なタスクやインターフェースを支援する可能性は大いにあります。 したがって、私たちの探求は広範囲に及びます。 ソフトウェアをオープンソースとしてリリースするので、私たちと一緒にプレイしたり、探索したり、ハックしたりできます。
12 月には、『 The Model Context Protocol: Simplifying Building AI apps with Anthropic Claude Desktop and Docker』を公開しました。 ブログ記事に加えて、Anthropic から参照 サーバー ごとに Docker バージョンを作成し、新しい Docker Hub mcp 名前空間に公開しました。
これにより、 Docker Desktop だけを使用して新しい AI 機能を試すための多くの方法が提供されます。
たとえば、Claude Desktop を拡張して Puppeteer を使用するには、次のスニペットで claude_desktop_config.json
ファイルを更新します。
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
Claude Desktopを再起動した後、Dockerで実行されているHeadless Chromiumブラウザを使用して、任意のURLのスクリーンショットを撮るようにClaudeに依頼できます。
作成した MCP (Model Context Protocol) サーバーに対しても同じことができます。 その後、このサーバーをユーザーに配布でき、Docker Desktop 以外のものをユーザーに提供しなくてもかまいません。
MCPサーバーのDockerイメージを作成する方法
MCP サーバーは、任意の言語で記述できます。 ただし、Anthropic の 参照サーバーの セットを含むほとんどの例は、Python または TypeScript で記述されており、 MCP サイトに記載されている公式 SDK のいずれかを使用しています。
一般的な uv ベースの Python プロジェクト (ルートに pyproject.toml
と uv.lock
があるプロジェクト) や npm TypeScript プロジェクトの場合、サーバーを Docker イメージとして配布するのは簡単です。
- Docker Desktop をまだお持ちでない場合は、無料の Docker Personal サブスクリプション にサインアップして、イメージを他のユーザーにプッシュできるようにします。
- ターミナルから
docker login
を実行します。 - この npm Dockerfile テンプレートまたはこの Python Dockerfile テンプレートをプロジェクトのルートにコピーします。 Python Dockerfile では、最後の行を少なくとも 1 回更新する必要があります。
- Docker CLI を使用してビルドを実行します (以下の手順を参照)。
上記の 2 つの Dockerfile は単なるテンプレートです。 MCP サーバーに他のランタイム依存関係が含まれている場合は、Dockerfile を更新してこれらの追加を含めることができます。 MCP サーバーのランタイムは、簡単に配布できるように自己完結型にする必要があります。
配布する準備ができている MCP サーバーがない場合は、単純な mcp-hello-world プロジェクト を使用して練習できます。 これは、1 つのツール呼び出しを持つサーバーを含む単純な Python コードベースです。 まず 、リポジトリをフォークし、マシンにクローンを作成し、次の手順に従って MCP サーバー イメージをビルドします。
イメージのビルド
ほとんどのサンプル MCP サーバーは、引き続きローカル (MCP クライアントと同じマシン上、stdio 経由の通信) で動作するように設計されています。 今後数か月の間に、リモート MCP サーバーをサポートするクライアントが増え始めますが、今のところは、少なくとも 2 つの異なるアーキテクチャ (amd64
と arm64
) で実行するサーバーを計画する必要があります。 つまり、ターゲットがローカルの MCP サーバーである場合は、常にマルチプラットフォーム イメージと呼ばれるものを配布する必要があります。 幸いなことに、これは簡単に行うことができます。
マルチプラットフォームビルダーの作成
最初のステップは、両方のプラットフォームを構築できるローカルビルダーを作成することです。 ご安心ください;このビルダーは、エミュレーションを使用して、ユーザーが持っていないプラットフォームを構築します。 詳細については、 マルチプラットフォームのドキュメント を参照してください。
docker buildx create \
--name mcp-builder \
--driver docker-container \
--bootstrap
イメージをビルドしてプッシュする
以下のコマンドラインで、 <your-account>
と mcp-server-name
を有効な値に置き換え、ビルドを実行してアカウントにプッシュします。
docker buildx build \
--builder=mcp-builder \
--platform linux/amd64,linux/arm64 \
-t <your-docker-account>/mcp-server-name \
--push .
Claude Desktopの拡張
イメージがプッシュされると、ユーザーは次のようなエントリを Claude Desktop に追加することで、MCP サーバーを Claude Desktop に接続 claude_desktop_config.json
。
"your-server-name": {
"command": "docker",
"args": ["run", "-i", "--rm", "--pull=always",
"your-account/your-server-name"]
}
これは最小限の引数のセットです。 追加のコマンドライン引数、環境変数、またはボリュームマウントを渡すことができます。
次のステップ
MCPプロトコルは、AIアプリケーションを拡張する標準的な方法を提供します。 拡張機能を Docker イメージとしてパッケージ化して、簡単に配布できることを確認してください。 Docker Hub の mcp 名前空間 で、今すぐ Claude Desktop で試すことができる例を確認してください。
いつものように、 公開リポジトリでお気軽にフォローしてください。
Docker での取り組みの詳細については、 ニュースレターを購読してください。
さらに詳しく
- Docker Newsletter を購読してください。
- Docker AI カタログで AI 開発を加速する方法をご紹介します。
- Docker Labs の GenAI シリーズを読む
- Docker デスクトップの最新リリースを入手します。
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか? 始めましょう。