
Remote Storage Proxy 是一个轻量级的Docker镜像,提供远程存储代理服务。该镜像作为客户端与各类远程存储服务(如S3兼容对象存储、FTP服务器、WebDAV服务等)之间的中间层,实现请求转发、协议转换、缓存加速及访问控制等功能,旨在简化多存储系统整合、优化远程存储访问性能,并提供统一的存储访问接口。
统一企业内部多类型存储服务(如S3、FTP、本地文件系统)的访问接口,简化业务系统存储适配。
通过本地缓存减少对远程存储的直接请求,提升跨国/跨区域存储服务的访问速度(如加速访问AWS S3海外桶)。
作为存储服务的前置网关,实现访问鉴权、数据脱敏及操作审计,避免客户端直接暴露远程存储凭证。
模拟各类远程存储服务接口,无需搭建真实存储环境即可进行业务系统开发测试。
作为多存储服务的转发层,实现数据跨存储自动同步或备份,提升数据可靠性。
通过Docker Hub或私有仓库拉取镜像:
bashdocker pull remotestorageproxy:latest
启动一个基础代理服务(需通过环境变量或配置文件指定远程存储信息):
bashdocker run -d \ --name remote-storage-proxy \ -p 8080:8080 \ -e REMOTE_TYPE=s3 \ -e REMOTE_URL=https://s3.example.com \ -e REMOTE_ACCESS_KEY=AKIAEXAMPLE \ -e REMOTE_SECRET_KEY=secret \ remotestorageproxy:latest
支持两种配置方式,可单独使用或组合:
环境变量配置
通过-e参数传入环境变量,适合简单配置场景。
配置文件挂载
通过挂载本地配置文件(如config.yaml)实现复杂配置,支持多远程存储代理、细粒度缓存策略等。配置文件路径默认为/app/config.yaml,可通过CONFIG_PATH环境变量自定义。
为避免容器重启后缓存数据或配置丢失,需挂载本地目录至容器内关键路径:
/app/cache,通过-v /local/cache:/app/cache挂载-v /local/config.yaml:/app/config.yaml挂载/app/logs,通过-v /local/logs:/app/logs挂载服务启动后,通过容器映射端口(默认8080)访问代理接口,接口路径与远程存储协议兼容。例如:
http://localhost:8080/bucket/object.txt(对应远程S3桶bucket下的object.txt)http://localhost:8080/ftp/path/file.txt(对应远程FTP服务器path/file.txt)代理S3兼容存储
bashdocker run -d \ --name s3-proxy \ -p 8080:8080 \ -e REMOTE_TYPE=s3 \ -e REMOTE_URL=https://s3.region.amazonaws.com \ -e REMOTE_ACCESS_KEY=AKIAEXAMPLE \ -e REMOTE_SECRET_KEY=example-secret \ -e CACHE_ENABLED=true \ -e CACHE_SIZE=10GB \ -v /local/cache:/app/cache \ remotestorageproxy:latest
代理FTP存储
bashdocker run -d \ --name ftp-proxy \ -p 8081:8080 \ -e REMOTE_TYPE=ftp \ -e REMOTE_URL=ftp://ftp.example.com \ -e REMOTE_USER=ftpuser \ -e REMOTE_PASSWORD=ftppass \ -e PORT=8081 \ # 自定义服务端口 remotestorageproxy:latest
创建docker-compose.yml,配置多服务代理及持久化:
yamlversion: '3.8' services: storage-proxy: image: remotestorageproxy:latest container_name: storage-proxy ports: - "8080:8080" environment: - REMOTE_TYPE=s3 - REMOTE_URL=https://s3.example.com - REMOTE_ACCESS_KEY=AKIAEXAMPLE - REMOTE_SECRET_KEY=secret - CACHE_ENABLED=true - CACHE_PATH=/app/cache - LOG_LEVEL=info volumes: - ./config.yaml:/app/config.yaml # 挂载自定义配置文件(若需) - ./cache:/app/cache # 持久化缓存 - ./logs:/app/logs # 持久化日志 restart: unless-stopped
| 参数名 | 描述 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
REMOTE_TYPE | 远程存储类型 | 字符串 | 无(必填) | s3/ftp/webdav/nfs |
REMOTE_URL | 远程存储服务地址 | 字符串 | 无(必填) | 如s3://s3.amazonaws.com |
REMOTE_ACCESS_KEY | 远程存储访问密钥(如S3的Access Key) | 字符串 | 空 | - |
REMOTE_SECRET_KEY | 远程存储密钥(如S3的Secret Key) | 字符串 | 空 | - |
REMOTE_USER | 远程存储用户名(如FTP/WebDAV) | 字符串 | 空 | - |
REMOTE_PASSWORD | 远程存储密码(如FTP/WebDAV) | 字符串 | 空 | - |
PORT | 代理服务监听端口 | 整数 | 8080 | 1-65535 |
CACHE_ENABLED | 是否启用缓存 | 布尔 | false | true/false |
CACHE_SIZE | 缓存最大容量(启用时必填) | 字符串 | 无 | 如10GB/512MB |
CACHE_PATH | 缓存文件存储路径 | 字符串 | /app/cache | 容器内绝对路径 |
LOG_LEVEL | 日志级别 | 字符串 | info | debug/info/warn/error |
CONFIG_PATH | 自定义配置文件路径 | 字符串 | /app/config.yaml | 容器内绝对路径 |
若使用配置文件(如config.yaml),支持更复杂的配置(示例为S3代理+缓存+访问控制):
yamlremote: type: s3 url: https://s3.example.com access_key: AKIAEXAMPLE secret_key: secret timeout: 30s # 远程请求超时时间 cache: enabled: true path: /app/cache max_size: 10GB ttl: 24h # 缓存过期时间 server: port: 8080 read_timeout: 60s write_timeout: 60s access_control: allowed_ips: - 192.168.1.0/24 - 10.0.0.1 denied_operations: # 禁止的操作(如删除) - delete
CACHE_TTL自动清理或外部定时任务)。remotestorageproxy:1.0.0)而非latest。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务