SlimToolkit (Slim) анализирует, уменьшает и защищает существующие образы контейнеров, не требуя менять Dockerfile или рабочий процесс.
Tecnativa/docker-socket-proxy
Защищённый HAProxy-прокси для Docker socket, который позволяет разрешать или блокировать отдельные разделы Docker API с помощью переменных окружения.
- Звёзды
- 2,850
- Форки
- 211
- Открытые issues
- 57
- Последний коммит
- 2 месяца назад
Что это?
Docker Socket Proxy работает между сервисом и Docker socket и фильтрует запросы к Docker API. Подключение исходного сокета к контейнеру фактически даёт ему root-доступ к хосту, хотя некоторым сервисам сокет нужен, чтобы реагировать на события или управлять контейнерами. Прокси позволяет открыть сервису только те части API, которые ему действительно необходимы.
Прокси собран на основе образа HAProxy с Alpine и небольшого файла конфигурации. Доступ к каждому разделу API управляется отдельной переменной окружения: значение 1 разрешает доступ, а 0 — запрещает. Запросы к закрытым разделам получают ответ HTTP 403. Доступ к Events, ping и version разрешён по умолчанию, а критически важные с точки зрения безопасности разделы, такие как AUTH и SECRETS, и операции записи через POST по умолчанию запрещены.
В образе нет TLS; он предназначен для работы в приватной сети Docker, а не для публичного доступа. Путь к сокету можно настроить через SOCKET_PATH, что пригодится, например, в системах на базе balenaOS; также поддерживается настройка LOG_LEVEL. Поддерживаются несколько версий Docker API, а образы публикуются в Docker Hub и GitHub Container Registry.
Ключевые возможности
- 01Позволяет разрешать или запрещать отдельные разделы Docker API с помощью соответствующих переменных окружения.
- 02Возвращает HTTP 403 для заблокированных запросов.
- 03Позволяет ограничить доступ только чтением, отключив POST.
- 04Поддерживает пользовательский путь к сокету через SOCKET_PATH.
- 05Собран на базе Alpine и HAProxy с небольшим файлом конфигурации.
- 06Поддерживает несколько версий Docker API — от 1.27 до 1.51.
Сценарии использования
- Предоставление контейнеру с мониторингом или reverse proxy доступа только для чтения к событиям контейнеров.
- Ограничение CI-инструмента или средства автоматизации, чтобы оно не могло выполнять привилегированные операции на хосте.
- Предоставление только тех разделов Docker API, которые нужны инструменту обнаружения сервисов наподобие Traefik.
Быстрый старт
- 1
Запустите контейнер proxy с доступом к Docker socket
docker container run -d --privileged --name dockerproxy -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2375:2375 tecnativa/docker-socket-proxy - 2
Настройте локальный клиент Docker на использование proxy
export DOCKER_HOST=tcp://localhost:2375 - 3
Проверьте подключение командой docker version
docker version
Что важно знать
- Согласно README, для подключения к Docker socket контейнер необходимо запускать с флагом --privileged.
- Образ не поддерживает TLS, поэтому трафик передаётся по обычному HTTP и должен оставаться в сети с ограниченным доступом.
- В критически важных для безопасности областях доступ к каждому разделу Docker API по умолчанию отключён — его необходимо разрешать явно.
В подборках
Темы
Частые вопросы
- Что такое docker-socket-proxy?
- Защищённый HAProxy-прокси для Docker socket, который позволяет разрешать или блокировать отдельные разделы Docker API с помощью переменных окружения. Docker Socket Proxy работает между сервисом и Docker socket и фильтрует запросы к Docker API. Подключение исходного сокета к контейнеру фактически даёт ему root-доступ к хосту, хотя некоторым сервисам сокет нужен, чтобы реагировать на события или управлять контейнерами. Прокси позволяет открыть сервису только те части API, которые ему действительно необходимы.
- docker-socket-proxy можно использовать бесплатно? Какая у него лицензия?
- docker-socket-proxy распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- docker-socket-proxy всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в docker-socket-proxy — 31 авг. 2026 г..
- Для чего можно использовать docker-socket-proxy?
- Предоставление контейнеру с мониторингом или reverse proxy доступа только для чтения к событиям контейнеров. Ограничение CI-инструмента или средства автоматизации, чтобы оно не могло выполнять привилегированные операции на хосте. Предоставление только тех разделов Docker API, которые нужны инструменту обнаружения сервисов наподобие Traefik.
- Как установить docker-socket-proxy?
- Запустите контейнер proxy с доступом к Docker socket: docker container run -d --privileged --name dockerproxy -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2375:2375 tecnativa/docker-socket-proxy Настройте локальный клиент Docker на использование proxy: export DOCKER_HOST=tcp://localhost:2375 Проверьте подключение командой docker version: docker version
- Где скачать docker-socket-proxy?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Tecnativa/docker-socket-proxy
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Графическое приложение для сборки, запуска и управления контейнерами и Kubernetes локально на базе Podman и других контейнерных движков.
Открытый облачно-нативный реестр контейнеров для хранения, подписи и сканирования образов и Helm charts, с RBAC и репликацией.
Подборка популярных open source-приложений в виде готовых к запуску защищённых Docker-образов, которые поддерживает Bitnami.
Интерактивный прокси для перехвата HTTP-трафика с поддержкой TLS и интерфейсами для консоли, командной строки и браузера.
Локальный шлюз конфиденциальности: маскирует чувствительные данные в запросах к API LLM и восстанавливает исходные значения в потоковых ответах.