使用说明
Docker MCP服务器
码头工人
docker pull docker.cnb.cool/masx200/docker_mirror/docker_mcp_server:latest
使用Docker构建和运行
构建Docker镜像
要在本地构建Docker镜像:
docker build -t docker-mcp-server .
运行Docker容器
构建映像后,您可以运行它:
# Basic run
docker run -d -p 3000:3000 --name docker-mcp-server docker-mcp-server
# With Docker socket mounted (for Docker operations)
docker run -d -p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
--name docker-mcp-server docker-mcp-server
# With custom configuration
docker run -d -p 8080:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_HOST=unix:///var/run/docker.sock \
--name docker-mcp-server docker-mcp-server
访问MCP服务器
容器运行后,Docker MCP服务器将通过HTTP网桥可用:
- HTTP端点:
http://localhost:3000/mcp/docker - WebSocket端点:
http://localhost:3000/ws/docker - SSE端点:
http://localhost:3000/sse/docker
MCP配置示例
以下是如何使用Claude Desktop配置Docker MCP服务器:
{
"mcpServers": {
"docker": {
"url": "http://localhost:3000/mcp/docker",
"transport": "streamable-http"
}
}
}
或者使用WebSocket:
{
"mcpServers": {
"docker": {
"url": "ws://localhost:3000/ws/docker",
"transport": "ws"
}
}
}
使用Docker Compose
为了更容易部署,您可以使用提供的 docker-compose.yml 文件:
# Start the service
docker-compose up -d
# Stop the service
docker-compose down
# View logs
docker-compose logs -f
此模块提供了一个 模型上下文协议 用于Docker命令的MCP服务器,由
mcp_mediator 核心框架。
Docker MCP服务器利用 自动服务器生成 MCP中介暴露现有Docker的特性
命令作为MCP工具。
每个命令都可以选择添加注释 @McpTool 以及最简单的描述,以提高工具的可发现性
以及可用性。
👉 查看支持的命令的完整列表 这里.
[!重要]
这是mcp_mediator项目: https://github.com/makbn/docker_mcp_server 要构建或修改,请克隆父存储库:git clone --recurse-submodules https://github.com/makbn/docker_mcp_server.git
使用示例
java -jar docker-mcp-server.jar \
--docker-host=tcp://localhost:2376 \
--tls-verify \
--cert-path=/etc/docker/certs \
--server-name=my-server \
--server-version=1.0.0 \
--max-connections=150 \
--docker-config=/custom/docker/config
使用Claude Desktop运行Docker MCP服务器 java -jar:
{
"mcpServers": {
"my_java_mcp_server": {
"command": "java",
"args": [
"-jar",
"docker-mcp-server.jar"
"--docker-host=tcp://localhost:2376",
"--tls-verify", # not required
"--cert-path=/etc/docker/certs", # required only if --tls-verify is available
"--server-name=my-docker-mcp-server",
"--server-version=1.0.0",
"--max-connections=150",
"--docker-config=/custom/docker/config"
]
}
}
}
或者创建本机映像(请参阅以下步骤)并使用独立应用程序:
{
"mcpServers": {
"my_java_mcp_server": {
"command": "docker-mcp-server-executable",
"args": [
"--docker-host=tcp://localhost:2376" // rest of args
]
}
}
}
如何构建
要构建可执行文件,请执行以下操作:
mvn clean compile package
此命令在下面创建一个jar文件 target 文件夹 mcp-mediator-implementation-docker-[version].jar你可以停下来
在这里,使用jar文件并执行它
使用 java -jar 命令。或者,您可以使用GraalVM本机映像创建独立的可执行应用程序:
native-image -jar mcp-mediator-implementation-docker-[version].jar
此命令创建可执行文件: 'mcp-mediator-implementation-docker-[version] 这是可以执行的。
自动生成MCP工具
该项目与 MCP Mediator 自动生成MCP工具
从现有的Docker服务中。
Docker服务类中的每个方法都可以选择性地注释为 @McpTool 明确定义工具的*
名字*, 描述以及其他元数据。
然而,注释是 不需要--MCP中介支持自动生成 无注释方法 通过
从方法、类和包名称推断详细信息。要启用此行为,请设置 createForNonAnnotatedMethods
到 true:
DefaultMcpMediator mediator = new DefaultMcpMediator(McpMediatorConfigurationBuilder.builder()
.createDefault()
.serverName(serverName)
.serverVersion(serverVersion)
.build());
mediator.
registerHandler(McpServiceFactory.create(dockerClientService)
.
createForNonAnnotatedMethods(true)); // Enables support for non-annotated methods
检查 io.github.makbn.mcp.mediator.docker.server.DockerMcpServer 对于完整的Mcp中介器配置。
支持的CLI选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--docker-host |
Docker守护进程主机URI | unix:///var/run/docker.sock |
--tls-verify |
启用TLS验证(与 --cert-path) |
false |
--cert-path |
Docker TLS客户端证书的路径(如果启用了TLS,则需要) | 无 |
--docker-config |
自定义Docker配置目录 | ~/.docker |
--server-name |
MCP服务器的服务器名称 | docker_mcp_server |
--server-version |
服务器版本标签 | 1.0.0.0 |
--max-connections |
Docker守护进程的最大连接数 | 100 |
--help |
显示用法和可用选项 | 没有 |
环境变量:
| 选项 | 描述 | 默认值 |
|---|---|---|
DOCKER_MCP_LOG_LEVEL |
日志记录级别(TRACE, DEBUG, INFO等等) |
DEBUG |
DOCKER_MCP_LOG_FILE |
日志输出文件的路径 | logs/docker_mcp_server.log |
支持的Docker命令作为MCP服务器工具
| MCP工具名称 | 描述 |
|---|---|
| docker_start_container | 按ID启动docker容器 |
| docker_stop_container | 按ID停止docker容器 |
| docker_leave_swarm | 从docker swarm中删除一个节点。 |
| docker_container_diff | 显示对容器文件系统所做的更改。 |
| docker_build_image_file | 从Dockerfile或目录构建映像。 |
| docker_inspect_volume | 获取docker卷的详细信息。 |
| docker_remove_service | 按ID删除docker服务 |
| docker_list_containers | 列出带有可选过滤器的容器。 |
| docker_inspect_swarm | 检查docker swarm详细信息。 |
| docker_push_image | 将图像推送到注册表,支持身份验证。 |
| docker_copy_archive_to_container | 将tar存档复制到正在运行的容器中。 |
| docker_stats_container | 获取容器统计信息(CPU、内存等)。 |
| docker_deisconnect_container_from_network | 断开容器与docker网络的连接 |
| docker_remove_contain | 使用可选的力移除容器。 |
| docker_inspect_service | 检查docker服务。 |
| docker_remove_secret | 按ID删除docker密钥 |
| docker_pull_image | 从注册表中提取图像,支持身份验证。 |
| docker_inspect_container | 检查容器配置和状态。 |
| docker_unpuse_container | 取消暂停容器的暂停。 |
| docker_list_images | 列出带有可选过滤器的docker镜像。 |
| docker_list_services | 列出集群中的所有docker服务。 |
| docker_remove_image | 使用强制和修剪选项删除图像。 |
| docker_create_network | 创建一个docker网络 |
| docker_tag_image | 用新的仓库和标签标记图像。 |
| docker_authenticate | 向docker注册表进行身份验证。 |
| docker_exec_command | 在容器内执行命令。 |
| docker_remove_swam_node | 删除群节点,可以选择强制删除。 |
| docker_search_images | 在docker Hub中搜索映像。 |
| docker_list_networks | 列出所有docker网络。 |
| docker_remove_volume | 删除docker卷。 |
| docker_create_container | 使用自定义设置创建容器。 |
| docker_remove_network | 删除docker网络 |
| docker_copy_archive_from_container | 将文件从容器复制到主机。 |
| docker_rename_container | 重命名docker容器。 |
| docker_pause_container | 暂停正在运行的容器。 |
| docker_version | 获取docker版本信息。 |
| docker_list_swarm_nodes | 列出docker集群中的所有节点。 |
| docker_log_contain | 从容器中检索日志。 |
| docker_preeme | 修剪未使用的docker资源。 |
| docker_inspect_network | 获取有关网络的详细信息 |
| docker_kill_container | 向容器发送终止信号。 |
| docker_top_container | 获取容器中正在运行的进程。 |
| docker_list_volumes | 列出带有可选过滤器的docker卷。 |
| docker_update_swarm_node | 更新群集节点的配置。 |
| docker_info | 显示docker系统范围的信息。 |
| docker_log_service | 从docker服务获取日志。 |
| docker_load_image | 从tar存档中加载图像。 |
| docker_list_tasks | 列出docker Swarm环境中的任务。 |
| docker_save_image | 将docker映像保存到本地tar文件。 |
| dockerjoin_swarm | 将节点加入现有的swarm集群。 |
| docker_create_volume | 创建一个新的docker卷。 |
| docker_initialize_swarm | 初始化一个新的docker swarm集群。 |
工作正在进行中,还有更多内容需要添加。
DockerClientService功能覆盖率
检查 DockerClientService 类,以获取可用和计划工具的完整列表(待实施)
[!重要]
几乎所有MCP工具的描述和名称都是使用AI代理自动生成的!
🧩 仓库结构和Git子树设置
这个项目是 Git子树模块 父存储库的
makbn/mcp_mediator。它保存在自己的存储库中,以支持独立
版本控制、CI和发布流程,同时保持与主流程的集成 mcp_mediator 单声道回购。
🔀 克隆结构
如果你在完整的背景下工作 mcp_mediator 系统:
`git clone --recurse-submodules https://github.com/makbn/docker_mcp_server.git`
贡献
欢迎投稿!请随时提交拉取请求。请先阅读此内容!
许可证
此项目根据GPL3许可证获得许可——有关详细信息,请参阅License文件。
