mcp-server-docker

by ckreiling (community) · Claude Desktop, Claude Code, OpenCode, любой MCP-клиент

MCP MCP Servers Open Source v0.3.0

MCP-сервер для управления Docker: контейнерами, образами, томами и сетями. Позволяет AI запускать, останавливать, инспектировать контейнеры и работать с Docker Compose прямо из диалога. Возможности: - Список и управление контейнерами (start, stop, remove) - Просмотр логов контейнера - Список образов, pull и remove - Управление томами и сетями - Запуск команд внутри контейнера (exec) - Поддержка Docker Compose стеков - Инспекция ресурсов с деталями

v0.3.0
current
Добавлен 19.06.2026 · Обновлён 19.06.2026 · MCP Servers
Установка
# Claude Desktop — claude_desktop_config.json:
```json
{
  "mcpServers": {
    "docker": {
      "command": "uvx",
      "args": ["mcp-server-docker"]
    }
  }
}
```

# Claude Code (CLI):
```bash
claude mcp add docker -- uvx mcp-server-docker
```

# OpenCode — ~/.config/opencode/opencode.json:
```json
{
  "mcp": {
    "docker": {
      "type": "local",
      "command": ["uvx", "mcp-server-docker"]
    }
  }
}
```

Docker daemon должен быть запущен и доступен текущему пользователю.
переведено ИИ

🐈‍⬛ Docker MCP-сервер

MCP-сервер для управления Docker с помощью естественного языка!

🪩 Что он может?

  • 🚀 Собирать контейнеры с помощью естественного языка
  • 🔍 Исследовать и отлаживать запущенные контейнеры
  • 📀 Управлять постоянными данными с помощью Docker-томов

❓ Для кого этот инструмент?

  • Системные администраторы: подключайтесь к удалённым Docker-движкам, например, для управления публичным веб-сайтом.
  • Энтузиасты: запускайте контейнеры локально и экспериментируйте с открытыми приложениями, поддерживающими Docker.
  • Любители ИИ: проверяйте на практике возможности LLM!

Демонстрация

Короткое видео, показывающее развёртывание WordPress с помощью естественного языка:

https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3

🏎️ Быстрый старт

Установка

Claude Desktop

На MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

На Windows: %APPDATA%/Claude/claude_desktop_config.json

Установка из PyPi с помощью uv

Если у вас не установлен uv, следуйте инструкциям по установке для вашей операционной системы: ссылка

Затем добавьте следующее в ваш файл конфигурации MCP-серверов:

"mcpServers": {
"mcp-server-docker": {
  "command": "uvx",
  "args": [
    "mcp-server-docker"
  ]
}
}

Установка с помощью Docker

Исключительно для удобства сервер может работать в Docker-контейнере.

После клонирования этого репозитория соберите Docker-образ:

docker build -t mcp-server-docker .

А затем добавьте следующее в ваш файл конфигурации MCP-серверов:

"mcpServers": {
"mcp-server-docker": {
  "command": "docker",
  "args": [
    "run",
    "-i",
    "--rm",
    "-v",
    "/var/run/docker.sock:/var/run/docker.sock",
    "mcp-server-docker:latest"
  ]
}
}

Обратите внимание, что Docker-сокет монтируется как том; это гарантирует, что MCP-сервер сможет подключиться к локальному Docker-демону и управлять им.

📝 Промпты

🎻 docker_compose

Используйте естественный язык для сборки контейнеров. Демонстрацию см. выше.

Укажите имя проекта и описание желаемых контейнеров, а остальное сделает LLM.

Этот промпт заставляет LLM войти в цикл plan+apply (план и применение). Ваше взаимодействие с LLM будет включать следующие шаги:

  1. Вы даёте LLM инструкции о том, какие контейнеры нужно запустить
  2. LLM рассчитывает краткий план на естественном языке и представляет его вам
  3. Вы либо:
  4. Применяете план
  5. Даёте LLM обратную связь, и LLM пересчитывает план

Примеры

  • name: nginx, containers: "развернуть контейнер nginx, открыв его на порту 9000"
  • name: wordpress, containers: "развернуть контейнер WordPress и вспомогательный контейнер MySQL, открыв Wordpress на порту 9000"

Возобновление проекта

При начале нового чата с этим промптом LLM получит состояние любых контейнеров, томов и сетей, созданных с указанным именем проекта name.

Это полезно в первую очередь для очистки, на случай потери чата, который отвечал за создание множества контейнеров.

📔 Ресурсы

Сервер предоставляет несколько ресурсов для каждого контейнера:

  • Статистика: использование CPU, памяти и т.д. для контейнера
  • Логи: просмотр последних строк логов из контейнера

🔨 Инструменты (Tools)

Контейнеры

  • list_containers
  • create_container
  • run_container
  • recreate_container
  • start_container
  • fetch_container_logs
  • stop_container
  • remove_container

Образы

  • list_images
  • pull_image
  • push_image
  • build_image
  • remove_image

Сети

  • list_networks
  • create_network
  • remove_network

Тома

  • list_volumes
  • create_volume
  • remove_volume

🚧 Отказ от ответственности

Чувствительные данные

НЕ НАСТРАИВАЙТЕ КОНТЕЙНЕРЫ С ИСПОЛЬЗОВАНИЕМ ЧУВСТВИТЕЛЬНЫХ ДАННЫХ. Это включает API-ключи, пароли баз данных и т.д.

Любые чувствительные данные, обмениваемые с LLM, по своей природе скомпрометированы, если только LLM не работает на вашем локальном компьютере.

Если вас интересует безопасная передача секретов в контейнеры, создайте issue в этом репозитории с описанием вашего варианта использования.

Проверка созданных контейнеров

Будьте внимательны и проверяйте контейнеры, которые создаёт LLM. Docker не является безопасной песочницей, и, следовательно, MCP-сервер потенциально может повлиять на хост-машину через Docker.

В целях безопасности этот MCP-сервер не поддерживает чувствительные опции Docker, такие как --privileged или --cap-add/--cap-drop. Если эти функции вас интересуют, создайте issue в этом репозитории с описанием вашего варианта использования.

🛠️ Конфигурация

Этот сервер использует метод from_env из Python Docker SDK. Подробности конфигурации см. в документации.

Подключение к Docker через SSH

Этот MCP-сервер может подключаться к удалённому Docker-демону через SSH.

Просто установите хостовый URL с префиксом ssh:// в определении MCP-сервера:

"mcpServers": {
  "mcp-server-docker": {
    "command": "uvx",
    "args": [
      "mcp-server-docker"
    ],
    "env": {
      "DOCKER_HOST": "ssh://myusername@myhost.example.com"
    }
  }
}

💻 Разработка

Для настройки среды разработки рекомендуется использовать Devbox.

Полезные команды для разработки см. в файле devbox.json.

После настройки devbox вы можете сконфигурировать вашу конфигурацию Claude MCP для его использования:

  "docker": {
    "command": "/path/to/repo/.devbox/nix/profile/default/bin/uv",
    "args": [
      "--directory",
      "/path/to/repo/",
      "run",
      "mcp-server-docker"
    ]
  },
Комментарии
Войдите, чтобы оставить комментарий