by ckreiling (community) Claude Desktop, Claude Code, OpenCode, любой MCP-клиент
MCP-сервер для управления Docker: контейнерами, образами, томами и сетями. Позволяет AI запускать, останавливать, инспектировать контейнеры и работать с Docker Compose прямо из диалога. Возможности: - Список и управление контейнерами (start, stop, remove) - Просмотр логов контейнера - Список образов, pull и remove - Управление томами и сетями - Запуск команд внутри контейнера (exec) - Поддержка Docker Compose стеков - Инспекция ресурсов с деталями
# 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 должен быть запущен и доступен текущему пользователю.
MCP-сервер для управления Docker с помощью естественного языка!
Короткое видео, показывающее развёртывание WordPress с помощью естественного языка:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
На 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 будет включать следующие шаги:
nginx, containers: "развернуть контейнер nginx, открыв его на порту 9000"wordpress, containers: "развернуть контейнер WordPress и вспомогательный контейнер MySQL, открыв Wordpress на порту 9000"При начале нового чата с этим промптом LLM получит состояние любых контейнеров, томов и сетей, созданных с указанным именем проекта name.
Это полезно в первую очередь для очистки, на случай потери чата, который отвечал за создание множества контейнеров.
Сервер предоставляет несколько ресурсов для каждого контейнера:
list_containerscreate_containerrun_containerrecreate_containerstart_containerfetch_container_logsstop_containerremove_containerlist_imagespull_imagepush_imagebuild_imageremove_imagelist_networkscreate_networkremove_networklist_volumescreate_volumeremove_volumeНЕ НАСТРАИВАЙТЕ КОНТЕЙНЕРЫ С ИСПОЛЬЗОВАНИЕМ ЧУВСТВИТЕЛЬНЫХ ДАННЫХ. Это включает API-ключи, пароли баз данных и т.д.
Любые чувствительные данные, обмениваемые с LLM, по своей природе скомпрометированы, если только LLM не работает на вашем локальном компьютере.
Если вас интересует безопасная передача секретов в контейнеры, создайте issue в этом репозитории с описанием вашего варианта использования.
Будьте внимательны и проверяйте контейнеры, которые создаёт LLM. Docker не является безопасной песочницей, и, следовательно, MCP-сервер потенциально может повлиять на хост-машину через Docker.
В целях безопасности этот MCP-сервер не поддерживает чувствительные опции Docker, такие как --privileged или --cap-add/--cap-drop. Если эти функции вас интересуют, создайте issue в этом репозитории с описанием вашего варианта использования.
Этот сервер использует метод from_env из Python Docker SDK. Подробности конфигурации см. в документации.
Этот 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"
]
},