
此Dockerhttps://hub.docker.com/r/efrecon/s3fs(及相关GitHubhttps://github.com/efrecon/docker-s3fs-client)便于将远程S3存储桶资源挂载到容器中。挂载通过FUSEhttps://github.com/s3fs-fuse/s3fs-fuse实现。该镜像本质上实现了一种低成本的Docker卷:使用适当的创建选项(见下文),您可以将远程存储桶绑定挂载回主机目录。此目录将使存储桶内容对进程以及主机上的所有其他容器可用。容器终止时,镜像会自动卸载远程存储桶。
镜像标签遵循https://github.com/s3fs-fuse/s3fs-fuse%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%8C**%E6%B2%A1%E6%9C%89**%60latest%60%E6%A0%87%E7%AD%BE%EF%BC%8C%E5%8F%AA%E6%9C%89%E4%B8%8E%5Bs3fs%5D%E5%8F%91%E5%B8%83%E7%89%88%E6%9C%AC%E5%8C%B9%E9%85%8D%E7%9A%84%E6%A0%87%E7%AD%BE%E3%80%82%E5%BD%93https://github.com/efrecon/docker-s3fs-client/blob/main/hooks/build%E6%97%B6%EF%BC%8C%E4%BC%9A%E8%87%AA%E5%8A%A8%E8%8E%B7%E5%8F%96%5Bs3fs%5D%E7%9A%84%E6%96%B0%E7%89%88%E6%9C%AC%E3%80%82%5Bs3fs%5D%E4%BB%8E%E4%B8%BB%E4%BB%93%E5%BA%93%E7%9A%84%E6%A0%87%E8%AE%B0git%E7%89%88%E6%9C%AC%E7%BC%96%E8%AF%91%E8%80%8C%E6%9D%A5%E3%80%82%E9%95%9C%E5%83%8F%E9%80%9A%E8%BF%87GitHubhttps://github.com/efrecon/docker-s3fs-client/blob/main/.github/workflows/docker.yml%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%EF%BC%8C%E5%B9%B6%E6%8E%A8%E9%80%81%E5%88%B0Dockerhttps://hub.docker.com/r/efrecon/s3fs%E5%92%8Chttps://github.com/efrecon/docker-s3fs-client/pkgs/container/s3fs%E3%80%82%E6%AF%8F%E5%A4%A9%E6%A3%80%E6%B5%8B%E4%B8%80%E6%AC%A1%E6%96%B0%E7%89%88%E6%9C%AC%E3%80%82
假设主机上存在/mnt/tmp目录,以下命令将挂载远程S3存储桶并将远程资源绑定挂载到主机的/mnt/tmp,使远程文件对同一主机上运行的进程和/或其他容器可访问。
Shelldocker run -it --rm \ --device /dev/fuse \ --cap-add SYS_ADMIN \ --security-opt "apparmor=unconfined" \ --env "AWS_S3_BUCKET=<存储桶名称>" \ --env "AWS_S3_ACCESS_KEY_ID=<访问密钥>" \ --env "AWS_S3_SECRET_ACCESS_KEY=<密钥>" \ --env UID=$(id -u) \ --env GID=$(id -g) \ -v /mnt/tmp:/opt/s3fs/bucket:rshared \ efrecon/s3fs
--device、--cap-add和--security-opt选项及其值用于确保容器能够使用FUSE提供S3存储桶。rshared确保绑定挂载使文件和目录对主机及其他容器递归可用。
注意,有报告称compose插件可能导致挂载传播问题(参见https://github.com/efrecon/docker-s3fs-client/issues/42%EF%BC%89%EF%BC%8C%E4%BD%BF%E7%94%A8%E7%8B%AC%E7%AB%8B%E7%9A%84%60docker-compose%60%E4%BC%BC%E4%B9%8E%E5%8F%AF%E4%BB%A5%E8%A7%A3%E5%86%B3%E3%80%82
一系列以AWS_S3_开头的环境变量可用于配置容器:
AWS_S3_BUCKET:存储桶名称,必填。AWS_S3_AUTHFILE:符合https://github.com/s3fs-fuse/s3fs-fuse%E6%A0%BC%E5%BC%8F%E7%9A%84%E6%8E%88%E6%9D%83%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E3%80%82%E8%8B%A5%E4%B8%BA%E7%A9%BA%EF%BC%8C%E5%88%99%E4%BB%8E%E5%85%B6%E4%BB%96%E6%8E%88%E6%9D%83%E7%9B%B8%E5%85%B3%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE%E3%80%82AWS_S3_ACCESS_KEY_ID:S3存储桶的访问密钥,仅在AWS_S3_AUTHFILE为空时使用。注意,AWS_S3_ACCESS_KEY_ID_FILE优先级更高。AWS_S3_ACCESS_KEY_ID_FILE:指向包含S3访问密钥的文件路径。存在时,从文件获取密钥,忽略AWS_S3_ACCESS_KEY_ID。便于通过Docker密钥传递密钥,仅在AWS_S3_AUTHFILE为空时使用。AWS_S3_SECRET_ACCESS_KEY:S3存储桶的密钥,仅在AWS_S3_AUTHFILE为空时使用。注意,AWS_S3_SECRET_ACCESS_KEY_FILE优先级更高。AWS_S3_SECRET_ACCESS_KEY_FILE:指向包含S3密钥的文件路径。存在时,从文件获取密钥,忽略AWS_S3_SECRET_ACCESS_KEY。便于通过Docker密钥传递密钥,仅在AWS_S3_AUTHFILE为空时使用。AWS_S3_URL:Amazon服务URL,可用于挂载实现兼容API的外部服务。AWS_S3_MOUNT:容器内挂载S3资源的位置,默认/opt/s3fs/bucket,不建议修改。AWS_S3_ENVFILE:容器内.env文件路径,从中读取环境变量。仅识别以AWS_S3_或S3FS_开头的行,内容由shell展开。通常应从主机以只读模式绑定挂载此文件。UID:容器内共享目录所有者的用户ID。GID:容器内共享目录所有者的组ID。S3FS_DEBUG:设为1可获取https://github.com/s3fs-fuse/s3fs-fuse%E7%9A%84%E8%B0%83%E8%AF%95%E4%BF%A1%E6%81%AF%E3%80%82S3FS_ARGS:传递给https://github.com/s3fs-fuse/s3fs-fuse%E7%9A%84%E9%A2%9D%E5%A4%96%E9%80%89%E9%A1%B9%EF%BC%8C%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%EF%BC%8C%E4%BE%8B%E5%A6%82%60use_path_request_style,allow_other,default_acl=public-read%60%E3%80%82默认情况下,容器运行empty.sh命令,保持静默。若需检查活跃度,可传递ls.sh命令,定期列出挂载目录内容。这两个命令均确保容器终止时从挂载点卸载远程存储桶,因此为保证正常运行,应选择其中之一。若未卸载,挂载系统将包含未知条目,导致不稳定。
自动卸载通过命令中的trap和https://github.com/krallin/tini%E5%AE%9E%E7%8E%B0%E3%80%82%E6%9C%AC%E9%95%9C%E5%83%8F%E7%9B%B4%E6%8E%A5%E6%8F%90%E4%BE%9Bhttps://github.com/krallin/tini%EF%BC%8C%E4%BB%A5%E6%94%AF%E6%8C%81%E5%9C%A8Swarm%5Bswarm%5D%E6%88%96kubernetes%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%BF%90%E8%A1%8C%E3%80%82
Dockerhttps://hub.docker.com/r/efrecon/s3fs的标签自动匹配https://github.com/s3fs-fuse/s3fs-fuse%E7%9A%84%E5%AE%98%E6%96%B9https://github.com/s3fs-fuse/s3fs-fuse/tags%E3%80%82%E9%80%9A%E8%BF%87GitHub API发现以v开头的标签,并为每个标签构建单独镜像。镜像基于https://hub.docker.com/_/alpine%E6%9E%84%E5%BB%BA%EF%BC%8C%E4%BC%9A%E9%80%89%E6%8B%A9%E6%9E%84%E5%BB%BA%E6%97%B6%E6%9C%80%E6%96%B0%E7%9A%84Alpine 3.x版本。s3fs 1.87版本因存在回归问题(已在发布后https://github.com/s3fs-fuse/s3fs-fuse/pull/1365%EF%BC%89%EF%BC%8C%E6%97%A0%E5%AF%B9%E5%BA%94%E9%95%9C%E5%83%8F%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务