Docker Socket Proxy

🐳 安全代理远程管控 Docker 全生命周期

通过 docker-socket-proxy 安全代理远程管理 Docker 容器,细粒度 API 权限控制避免直接暴露 root 级 socket 风险。

收藏
4.8k
安装
974
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

本技能通过 tecnativa/docker-socket-proxy 的 REST API 实现对远程 Docker 主机的精细化管控。与直接挂载 Docker socket(等价于 root 权限)不同,该代理允许通过环境变量逐类启用/禁用 API 接口,如容器生命周期、镜像、网络、卷、Swarm、系统信息等模块,实现最小权限原则。

支持完整的容器操作:列出、启动、停止、重启、暂停、重命名、执行命令;查看日志、资源统计、进程列表、文件变更;管理镜像、网络、卷的 CRUD 与清理;支持 Swarm 模式下的服务、任务、配置、密钥管理。容器名称支持模糊匹配,myapp 可匹配 project-myapp-1。

依赖 curl 和 jq,代理地址依次从 $DOCKER_PROXY_URL、$DOCKER_HOST、本地 2375 端口解析。

显著优点

  • 安全隔离:代理层将直接 socket 访问转化为可控的 HTTP API,避免容器逃逸等致命风险
  • 细粒度权限:每个 API 类别独立开关,可构造只读、仅容器管理、无 Swarm 等多种角色
  • 远程友好:原生支持 TCP 暴露,适合 CI/CD、边缘节点、多主机编排场景
  • 功能完备:覆盖 Docker REST API 全量表面,满足运维、监控、调试全流程

潜在局限

  • 部署依赖:需额外维护代理容器,增加架构复杂度
  • 延迟开销:HTTP 代理引入网络跃点,高频场景可能感知延迟
  • 权限配置门槛:环境变量组合逻辑需理解 Docker API 分类,误配可能导致 403 或过度授权
  • exec 复杂度:容器内命令执行采用 create+start 双步+流多路复用,交互式场景支持有限

适合人群

  • DevOps/SRE 工程师需远程管理多节点 Docker 环境
  • 安全团队寻求替代 --privileged + socket 挂载的方案
  • CI/CD 流水线需受限权限自动化操作容器
  • 边缘计算场景需跨网络轻量管控容器生命周期

常规风险

  • 代理配置漂移:代理容器重启后若环境变量丢失,技能部分功能将 403 失效
  • 网络暴露:TCP 代理若未配 TLS/mTLS,存在中间人攻击与未授权访问风险
  • 模糊匹配歧义:容器名匹配逻辑在规模化部署时可能误操作相似命名容器
  • exec 注入:exec 模式若未校验输入,存在命令注入风险,需确保代理已限制 CONTAINERS 权限

Docker Socket Proxy 内容

scripts文件夹
手动下载zip · 10.3 kB
run-docker.shtext/x-shellscript
请选择文件