linuxserver/socket-proxySocket Proxy 是一个安全增强型代理,允许您对 Docker socket 应用访问规则,限制需要使用它的容器(如 watchtower 或 Traefik)的***面。
!socket-proxy
该镜像利用 Docker manifest 实现多平台支持。只需拉取 lscr.io/linuxserver/socket-proxy:latest 即可获取适合您架构的正确镜像,也可以通过标签拉取特定架构的镜像。
支持的架构:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| riscv64 | ✅ | riscv64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
此容器概念基于 [***] mods 或自定义脚本/服务,也不支持以 root 以外的用户(或无 root 环境中的 docker 用户)运行。它旨在作为 Tecnativa 容器的替代品。
容器应与使用它的服务运行在同一 Docker 网络上。大多数通常连接到挂载的 docker.sock 的容器,如果配置中没有提供选项,可以使用 DOCKER_HOST 环境变量覆盖其端点;通常应指向 tcp://socket-proxy:2375。
docker version 并检查 API version。此镜像可以在只读容器文件系统下运行。有关详细信息,请 阅读文档。
以下是帮助您从此镜像创建容器的方法,您可以使用 docker compose 或 docker cli。
[!NOTE] 除非参数标记为“可选”,否则它是必填项,必须提供值。
yaml--- services: socket-proxy: image: lscr.io/linuxserver/socket-proxy:latest container_name: socket-proxy environment: - ALLOW_START=0 #可选 - ALLOW_STOP=0 #可选 - ALLOW_RESTARTS=0 #可选 - AUTH=0 #可选 - BUILD=0 #可选 - COMMIT=0 #可选 - CONFIGS=0 #可选 - CONTAINERS=0 #可选 - DISABLE_IPV6=0 #可选 - DISTRIBUTION=0 #可选 - EVENTS=1 #可选 - EXEC=0 #可选 - IMAGES=0 #可选 - INFO=0 #可选 - LOG_LEVEL=info #可选 - NETWORKS=0 #可选 - NODES=0 #可选 - PING=1 #可选 - PLUGINS=0 #可选 - POST=0 #可选 - SECRETS=0 #可选 - SERVICES=0 #可选 - SESSION=0 #可选 - SWARM=0 #可选 - SYSTEM=0 #可选 - TASKS=0 #可选 - TZ=Etc/UTC #可选 - VERSION=1 #可选 - VOLUMES=0 #可选 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped read_only: true tmpfs: - /run
bashdocker run -d \ --name=socket-proxy \ -e ALLOW_START=0 `#可选` \ -e ALLOW_STOP=0 `#可选` \ -e ALLOW_RESTARTS=0 `#可选` \ -e AUTH=0 `#可选` \ -e BUILD=0 `#可选` \ -e COMMIT=0 `#可选` \ -e CONFIGS=0 `#可选` \ -e CONTAINERS=0 `#可选` \ -e DISTRIBUTION=0 `#可选` \ -e DISABLE_IPV6=0 `#可选` \ -e EVENTS=1 `#可选` \ -e EXEC=0 `#可选` \ -e IMAGES=0 `#可选` \ -e INFO=0 `#可选` \ -e LOG_LEVEL=info `#可选` \ -e NETWORKS=0 `#可选` \ -e NODES=0 `#可选` \ -e PING=1 `#可选` \ -e PLUGINS=0 `#可选` \ -e POST=0 `#可选` \ -e SECRETS=0 `#可选` \ -e SERVICES=0 `#可选` \ -e SESSION=0 `#可选` \ -e SWARM=0 `#可选` \ -e SYSTEM=0 `#可选` \ -e TASKS=0 `#可选` \ -e TZ=Etc/UTC `#可选` \ -e VERSION=1 `#可选` \ -e VOLUMES=0 `#可选` \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --restart unless-stopped \ --read-only \ --tmpfs /run \ lscr.io/linuxserver/socket-proxy:latest
容器通过运行时传递的参数进行配置(如上所示)。这些参数以冒号分隔,表示 <外部>:<内部>。例如,-p 8080:80 会将容器内的端口 80 暴露出来,可通过主机 IP 和端口 8080 从外部访问。
| 参数 | 功能 |
|---|---|
-e ALLOW_START=0 | /containers/{id}/start - 即使 POST=0,此选项也将生效 |
-e ALLOW_STOP=0 | /containers/{id}/stop - 即使 POST=0,此选项也将生效 |
-e ALLOW_RESTARTS=0 | /containers/{id}/stop、/containers/{id}/restart 和 /containers/{id}/kill - 即使 POST=0,此选项也将生效 |
-e AUTH=0 | /auth |
-e BUILD=0 | /build |
-e COMMIT=0 | /commit |
-e CONFIGS=0 | /configs |
-e CONTAINERS=0 | /containers |
-e DISTRIBUTION=0 | /distribution |
-e DISABLE_IPV6=0 | 设置为 1 可防止绑定到 IPv6 接口,适用于不支持 IPv6 的旧系统。 |
-e EVENTS=1 | /events |
-e EXEC=0 | /exec 和 /containers/{id}/exec |
-e IMAGES=0 | /images |
-e INFO=0 | /info |
-e LOG_LEVEL=info | 可能的值:debug、info、notice、warning、err、crit、alert 和 emerg。默认为 info。 |
-e NETWORKS=0 | /networks |
-e NODES=0 | /nodes |
-e PING=1 | /_ping |
-e PLUGINS=0 | /plugins |
-e POST=0 | 当设置为 0 时,仅允许 GET 和 HEAD 操作,使 API 访问为只读。 |
-e SECRETS=0 | /secrets |
-e SERVICES=0 | /services |
-e SESSION=0 | /session |
-e SWARM=0 | /swarm |
-e SYSTEM=0 | /system |
-e TASKS=0 | /tasks |
-e TZ=Etc/UTC | 设置容器时区 |
-e VERSION=1 | /version |
-e VOLUMES=0 | /volumes |
-v /var/run/docker.sock:ro | 将主机 docker socket 挂载到容器中。 |
--read-only | 使容器文件系统为只读。 |
--tmpfs /run | 将 /run 挂载到 tmpfs(RAM)以使其可写。 |
bashdocker exec -it socket-proxy /bin/sh
bashdocker logs -f socket-proxy
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' socket-proxy
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/socket-proxy:latest
我们的大多数镜像是静态的、版本化的,需要更新镜像并重新创建容器来更新内部的应用程序。除了某些例外情况(在相关的 readme.md 中注明),我们不建议或支持在容器内部更新应用程序。请查阅上面的 应用设置 部分,了解是否建议对该镜像执行此操作。
以下是更新容器的说明:
更新镜像:
bashdocker compose pull
bashdocker compose pull socket-proxy
更新容器:
bashdocker compose up -d
bashdocker compose up -d socket-proxy
您还可以删除旧的悬空镜像:
bashdocker image prune
bashdocker pull lscr.io/linuxserver/socket-proxy:latest
bashdocker stop socket-proxy
bashdocker rm socket-proxy
bashdocker image prune
[!TIP] 我们推荐 Diun 用于更新通知。不推荐或支持其他自动更新容器的工具。
如果您想对这些镜像进行本地修改以用于开发目的或自定义逻辑:
bashgit clone [***] cd docker-socket-proxy docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/socket-proxy:latest .
可以使用 lscr.io/linuxserver/docker-qemu-static 在 x86_64 硬件上构建 ARM 变体,反之亦然
bashdocker run --rm --privileged lscr.io/linuxserver/docker-qemu-static --reset
注册后,您可以使用 -f Dockerfile.aarch64 指定要使用的 dockerfile。
LOG_LEVEL。docker exec 连接劫持。ALLOW_START、ALLOW_STOP 和 ALLOW_RESTARTS,使其即使在 POST=0 时也能工作。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务