
d3fk/s3cmd:/s3 -v $HOME/.s3:/root d3fk/s3cmd sync . s3://bucket-name
第一个卷将当前目录用作工作目录,第二个卷用于S3连接的配置。
该镜像使用.s3cfg配置文件。若本地已使用s3cmd,上述命令将使用$HOME/.s3/.s3cfg中的现有配置文件。若未本地使用s3cmd或不想使用本地配置,可通过以下命令生成.s3cfg文件:
shmkdir .s3 docker run --rm -ti -v $(pwd):/s3 -v $(pwd)/.s3:/root d3fk/s3cmd --configure
若需从头手动配置,源代码仓库的.s3目录提供空白.s3cfg模板文件。
s3cmd支持通过配置文件或命令行选项启用传输过程中的SSL加密。还支持静态加密:使用--server-side-encryption标志启用服务器端加密(如指定服务器上的KMS密钥),或使用-e/--encrypt标志启用客户端加密。这些选项也可在.s3cfg配置文件中定义。
详见s3tools官方文档。
该容器适用于K8s CRONJOB。可使用提供的s3-backup-cronjob.yaml文件作为CRONJOB模板。通过以下kubectl命令从.s3cfg配置文件创建configmap:
shkubectl create configmap s3config --from-file $HOME/.s3
配置数据卷/路径和存储桶(通过补全文件或定义环境变量:YOUR_KMS_KEY_ID、YOUR_BUCKET_NAME、NFS_SERVER、SHARED-FOLDER)后,通过以下命令创建K8s CRONJOB:
shkubectl create -f s3-backup-cronjob.yaml
注:sync命令的--no-check-md5选项通过仅比较文件大小加速同步,但可能遗漏变更文件。在使用服务器端加密时,该选项尤为实用,因存储桶中加密文件的md5签名与待备份的非加密文件不同。
若需将数据库转储存储到S3兼容对象存储,建议使用d3fk/mysql-s3-backup,该镜像同样基于Alpine,除s3cmd工具外还包含MySQL客户端。
GitHub代码仓库内容基于MIT许可证提供





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