Socket 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 时也能工作。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429