
该Docker镜像通过fuse的https://github.com/s3fs-fuse/s3fs-fuse实现,将远程S3存储桶资源挂载到容器中。它本质上是一种低成本的Docker[卷]实现:使用适当的创建选项(见下文),可将远程存储桶绑定挂载回主机目录,使存储桶内容对主机进程及其他容器可用。容器终止时会自动卸载远程存储桶。
镜像[标签]遵循https://github.com/s3fs-fuse/s3fs-fuse实现的版本。当[重新构建]时,会自动获取https://github.com/s3fs-fuse/s3fs-fuse的新版本。https://github.com/s3fs-fuse/s3fs-fuse从主仓库的标记git版本编译而来。
假设主机上存在/mnt/tmp目录,以下命令会挂载远程S3存储桶,并将远程资源绑定挂载到主机的/mnt/tmp,使远程文件对同一主机上的进程和/或其他容器可访问。
Shelldocker run -it --rm \ --device /dev/fuse \ --cap-add SYS_ADMIN \ --security-opt "apparmor=unconfined" \ --env "AWS_S3_BUCKET=<bucketName>" \ --env "AWS_S3_ACCESS_KEY_ID=<accessKey>" \ --env "AWS_S3_SECRET_ACCESS_KEY=<secretKey>" \ --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确保绑定挂载使文件和目录对主机及其他容器递归可用。
可通过一系列环境变量(大多以AWS_S3_开头)配置容器:
AWS_S3_BUCKET:存储桶名称,必填项。AWS_S3_AUTHFILE:符合https://github.com/s3fs-fuse/s3fs-fuse指定格式的授权文件路径。若为空,则从其他授权相关环境变量获取数据。AWS_S3_ACCESS_KEY_ID:S3存储桶的访问密钥,仅在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变量。便于通过Dockersecrets传递密码,仅在AWS_S3_AUTHFILE为空时使用。AWS_S3_URL:Amazon服务的URL,可用于挂载实现兼容API的外部服务。AWS_S3_MOUNT:容器内挂载WebDAV资源的位置,默认为/opt/s3fs/bucket,通常无需修改。UID:容器内共享目录所有者的用户ID。GID:容器内共享目录所有者的组ID。S3FS_DEBUG:设为1可获取https://github.com/s3fs-fuse/s3fs-fuse的调试信息。S3FS_ARGS:可包含传递给https://github.com/s3fs-fuse/s3fs-fuse的其他选项。默认情况下,容器会定期列出挂载目录内容,这通过挂载远程存储桶后执行的命令实现。若不希望此行为,可传递empty.sh作为命令。
注意这两个命令均确保容器终止时从挂载点卸载远程存储桶,因此应选择其中一个以保证正常运行。若未卸载,挂载系统会因存在未知条目而不稳定。
自动卸载通过执行命令中的trap和https://github.com/krallin/tini结合实现。https://github.com/krallin/tini直接包含在镜像中,以支持在Swarm环境中运行。
Docker[镜像]的[标签]自动匹配https://github.com/s3fs-fuse/s3fs-fuse的官方[版本]列表。通过GitHub API发现以v开头的标签列表,并为每个标签构建单独镜像。镜像基于https://hub.docker.com/_/alpine构建。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务