Docker-MCP quickstart

項目概述

Docker-MCP 是一個 支持mcp的Docker 管理服務器,它允許 客戶端 通過 MCP(Model Control Protocol)接口直接與 Docker 進行交互。該項目提供了一套工具,使 AI 助手能夠創建容器、部署 Docker Compose 、獲取容器日志以及列出所有容器。

項目結構

.
├── .gitignore
├── .python-version
├── LICENSE
├── README.md
├── pyproject.toml
├── src/
│   └── docker_mcp/
│       ├── __init__.py
│       ├── docker_executor.py
│       ├── handlers.py
│       └── server.py
└── uv.lock

流程圖

在這里插入圖片描述

核心文件功能解析

1. pyproject.toml

這是項目的配置文件,定義了項目的元數據和依賴項:

  • 項目名稱:docker-mcp
  • 版本:0.1.0
  • 描述:A docker MCP server
  • Python 版本要求:>=3.12
  • 主要依賴:
    • httpx
    • mcp
    • python-dotenv
    • python-on-whales
    • pyyaml
  • 入口點:docker_mcp:main

2. src/docker_mcp/init.py

這是包的初始化文件,定義了包的入口點:

from . import server
import asynciodef main():"""Main entry point for the package."""asyncio.run(server.main())# 在包級別暴露重要項
__all__ = ['main', 'server']

這個文件導入了 server 模塊并定義了 main 函數作為包的主入口點,它會運行 server.main() 函數。

3. src/docker_mcp/server.py

這是項目的核心服務器文件,負責設置和運行 MCP 服務器:

  • 創建 MCP 服務器實例
  • 定義可用的提示(prompts)
  • 定義可用的工具(tools)
  • 處理工具調用
  • 設置信號處理(用于優雅關閉)
  • 運行服務器的主函數

服務器提供了四個主要工具:

  • create-container:創建獨立的 Docker 容器
  • deploy-compose:部署 Docker Compose 堆棧
  • get-logs:獲取特定容器的日志
  • list-containers:列出所有 Docker 容器

4. src/docker_mcp/handlers.py

這個文件包含處理各種 Docker 操作的類和函數:

  • DockerHandlers 類:實現了服務器提供的所有工具功能
    • handle_create_container:創建和運行 Docker 容器
    • handle_deploy_compose:部署 Docker Compose 堆棧
    • handle_get_logs:獲取容器日志
    • handle_list_containers:列出所有容器
  • 輔助函數:
    • parse_port_mapping:解析端口映射配置
    • _process_yaml:處理 YAML 配置
    • _save_compose_file:保存 Docker Compose 文件
    • _deploy_stack:部署 Docker Compose 堆棧
    • _cleanup_files:清理臨時文件

5. src/docker_mcp/docker_executor.py

這個文件提供了與 Docker 命令行交互的執行器類:

  • CommandExecutor 協議:定義命令執行接口
  • WindowsExecutor 和 UnixExecutor 類:針對不同操作系統的命令執行實現
  • DockerExecutorBase 抽象類:Docker 執行器的基類
  • DockerComposeExecutor 類:專門用于執行 Docker Compose 命令
    • 提供 down、pull、up、ps 等方法
    • 根據操作系統構建適當的命令

使用示例

1、啟動docker
在這里插入圖片描述

2、在trae中安裝與配置mcp
marketspace安裝
在這里插入圖片描述

配置mcp

在這里插入圖片描述

3、測試
列出當前有多少個鏡像
在這里插入圖片描述

查看正在運行的docker
在這里插入圖片描述

總結

Docker-MCP 是一個精心設計的項目,它通過 MCP 協議將 Docker 功能暴露給 Claude AI,使 AI 能夠直接管理 Docker 容器和 Compose 堆棧。該項目采用了現代 Python 異步編程技術,并具有良好的模塊化設計,為 AI 與容器化應用的交互提供了一個強大的接口。

github鏈接:docker-mcp

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909561.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git 的變基操作(適合一個功能進行了多次commit提交,提交記錄過多不美觀)

git提交的 commit 的記錄很多,想多個 commit 進行合并,對代碼進行整理,幫助更好的閱讀代碼 IDEA 的操作步驟: 這里,給出你想進行合并的記錄 hash 值,完了點擊“Rebase”進行合并 點擊后,會進行…

【完整源碼+數據集+部署教程】路邊廣告牌實例分割系統源碼和數據集:改進yolo11-SEAMHead

研究背景與意義 研究背景與意義 隨著城市化進程的加快,路邊廣告牌作為重要的商業宣傳媒介,越來越多地出現在城市的各個角落。它們不僅承擔著信息傳播的功能,還對城市的視覺環境產生了深遠的影響。然而,隨著廣告牌數量的激增&…

C++ 中文件 IO 操作詳解

在C中,文件操作是通過流(stream)來實現的。標準庫提供了三種主要的文件流類來處理文件IO操作: ofstream:用于寫入文件(output file stream)ifstream:用于讀取文件(input file stream&#xff0…

第32節 Node.js 全局對象

在Node.js中我們可以直接訪問到全局對象。 這些對象在所有模塊里都是可用的,有些對象不是在全局作用域而是在模塊作用域里,這些情況將在本文的內容中進行介紹。 global {Object} 全局命名空間對象。 在瀏覽器中,全局作用域就是頂級域。如…

Linux文件屬性和權限概述-linux026

Linux文件屬性和權限概述 Linux 系統作為多用戶操作系統,通過文件屬性和權限機制來控制不同用戶對文件和目錄的訪問,從而保證系統的安全性。不同的用戶對同一文件可以有不同的訪問權限,這些權限包括 讀取(read)、寫入…

nuScenes介紹

目標檢測指標 指標內容mAP(mean Average Precision)bev下2d中心點的距離來評價,而不是像2d檢測里用iou來評價mATE(Average Translation Error)中心點的2D歐式距離mASE(Average Scale Error)中心…

帶中斷計數器的UART接收中斷程序 (8259@400H/402H)

1.程序功能 在中斷服務程序中增加了中斷計數器,并在主循環中通過串口輸出中斷次數。 2.驗證 2.1手動觸發8259的IR1,高電平有效 2.2串口接收 3.測試程序 ; You may customize this and other start-up templates; ; The location of this template is…

在Postgresql中跟蹤SQL語句

文章說明 本文主要說明如何在Postgresql中跟蹤實際執行的SQL語句。 本文內容有如下應用場景: 在系統中執行了一系列的操作,需要將這些操作轉化成SQL在正式環境上一次性執行,省下重新執行一遍的操作時間。最近系統數據被人或被程序修改導致…

【信創-k8s】重磅-鯤鵬arm+麒麟V10離線部署k8s1.30+kubesphere4.1.3

隨著信創產業的推進,鯤鵬arm64架構得以快速發展。而由于信創領域的主要客戶通常部署在內網環境中,這使得離線部署成為該架構方案實施過程中不可或缺的關鍵環節。 **環境涉及軟件版本信息** 服務器芯片: **鯤鵬920/飛騰2000(arm64)** 操作系統&#xff…

第11章:Neo4j實際應用案例

理論知識和技術細節固然重要,但真正理解Neo4j的價值在于了解它如何解決實際業務問題。本章將探討Neo4j在各個領域的實際應用案例,包括社交網絡分析、推薦系統、知識圖譜以及欺詐檢測與安全分析。通過這些案例,讀者可以了解如何將前面章節學到…

數字圖像處理與OpenCV初探

什么是數字圖像處理? 當今時代,數字圖像無處不在。手機拍照、安防監控、醫療檢查、地圖導航、工業質檢……我們每天都在接收、分析和處理大量圖像信息。對于計算機而言,圖像并不是一張“看得懂”的照片,而是由數值組成的矩陣。如何…

ubuntu網絡連接失敗 + mobaxterm拖拽文件出錯等問題解決方法

網絡連接問題&#xff0c;表現在不能通過源下載以及更新 終端問題顯示【通過 ip a 命令獲得】 kejiubuntu:~/Desktop$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00…

C# CS_Prj01 串口通信控制臺程序

一直以來&#xff0c;玩8088單板機&#xff0c;上位機都是使用的綠色現成的串口軟件。 今天&#xff0c;感覺8088單板機的各部分測試都基本完成了。 本著玩的精神&#xff0c;自己寫一個上位機的簡單串口程序&#xff0c;與自己的8088單板機通訊。 功能&#xff1a;一個完整…

40套精品大氣黑金系列行業PPT模版分享

黑金系列PPT模版&#xff0c;優秀員工頒獎典禮PPT模版&#xff0c;消費訂貨會PPT模版&#xff0c;共贏未來PPT模版&#xff0c;投資類PPT模版&#xff0c;雙12年終盛典PPT模版&#xff0c;商業計劃書PPT模版&#xff0c;高端通用企業文化PPT模版&#xff0c;公司喜報企業捷報PP…

SAP學習筆記 - 開發31 - 前端Fiori開發 Device Adaptation(設備自適應)

上一章講了Fiori開發中的 Responsiveness&#xff08;響應式設計&#xff09;。 SAP學習筆記 - 開發30 - 前端Fiori開發 Responsiveness&#xff08;響應式設計&#xff09;-CSDN博客 本章繼續學習Fiori 開發中的知識。 目錄 1&#xff0c;Device Adaptation&#xff08;設備…

網絡的那些事——初級——OSPF(2)

前面說了OSPF的狀態機和一起簡單的OSPF配合&#xff0c;接下這章繼續寫OSPFV2 IP frr和OSPFV3. 什么是OSPF IP FRR? OSPF IP FRR&#xff08;Fast Reroute&#xff09;利用全網鏈路狀態數據庫&#xff0c;預先計算出備份路徑保存在轉發表中&#xff0c;以備在故障時提供流量保…

C++(初階)(二十一)——unordered_set和unordered_map

二十二&#xff0c;unordered_set和unordered_map的使用 1.unordered_set 1.1介紹 c11 template<class Key,class Hash std::hash<Key>,class KeyEqual std::equal_to<Key>,class Allocator std::allocator<Key> > class unordered_set;c17 na…

Java面試題:分布式ID時鐘回撥怎么處理?序列號耗盡了怎么辦?

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 有很多很多不足的地方&#xff0c;歡迎評論交流&#xff0c;感謝您的閱讀和評論&#x1f604;。 目錄 引言1 分布式ID2 問題2.1 時鐘回撥2.1.1 毫秒級時…

影視劇學經典系列-梁祝-陶淵明《感士不遇賦并序》

1、背景 《感士不遇賦并序》是東晉詩人陶淵明創作的一篇抒發懷才不遇之慨的辭賦作品。受董仲舒《士不遇賦》和司馬遷《悲士不遇賦》啟發&#xff0c;陶淵明借古喻今&#xff0c;批判“真風告逝&#xff0c;大偽斯興”的亂世。社會批判?以“密網裁而魚駭&#xff0c;宏羅制而鳥…

Spring Cloud Gateway 全面學習指南

Spring Cloud Gateway 全面學習指南 學習目錄 第一部分&#xff1a;基礎概念與核心架構 API網關概述與Spring Cloud Gateway簡介Spring Cloud Gateway核心架構與工作原理Spring Cloud Gateway與Zuul的對比分析Spring Cloud Gateway核心組件詳解 第二部分&#xff1a;基礎配…