
d3fk/mysql-s3-backup用于创建数据库转储,以及s3cmd S3客户端用于与S3桶交互。适用于任何S3兼容对象存储系统存储数据库备份。MySQL客户端可与任何MySQL兼容数据库配合使用,如MySQL、MariaDB或Amazon Aurora MySQL等。容器以shell作为入口点,便于轻松组合mysqldump和s3cmd命令。
和功能正常的s3cmd与mysql客户端,基于轻量级Alpine镜像。
d3fk/mysql-s3-backup:stable-gpg:多架构镜像,不会重建,提供固定版本的客户端和GPG。适用于需要避免行为变更并需客户端GPG加密的场景。包含s3cmd 2.4.0、GPG 2.4.7和mysql-client 11.4.5,基于Alpine Linux v3.21。生产环境验证稳定,代码冻结在GitHub发布版中,未来不会变更或重建。
shdocker pull d3fk/mysql-s3-backup:stable-gpg
d3fk/mysql-s3-backup:stable:多架构镜像,不会重建,提供固定版本的客户端和Alpine发行版。适用于需要避免行为变更的场景。包含s3cmd 2.3.0和mysql-client 10.6.11,基于Alpine Linux v3.17。生产环境验证稳定,代码冻结在GitHub发布版中,未来不会变更或重建。
shdocker pull d3fk/mysql-s3-backup:stable
shdocker run --rm -v $(pwd):/s3 -v $HOME/.s3:/root d3fk/mysql-s3-backup sh -c 'mysqldump -h ${MYSQL_HOST:localhost} -u ${MYSQL_USER:root} --password=${MYSQL_PASSWORD:your_password} --databases ${DATABASES_NAMES:mysql}> "$(date +%F_%H)_mysqldump.sql" && s3cmd put --ssl . s3://${BUCKET_NAME}'
卷挂载说明:
-v $(pwd):/s3:将当前目录作为工作目录,可本地保留备份副本-v $HOME/.s3:/root:挂载S3配置目录,用于s3cmd配置s3cmd使用.s3cfg配置文件。若本地已使用s3cmd,上述命令将使用$HOME/.s3/.s3cfg配置。如需生成新配置或不使用本地配置,可通过以下命令生成:
shmkdir .s3 docker run --rm -ti -v $(pwd):/s3 -v $(pwd)/.s3:/root d3fk/mysql-s3-backup s3cmd --configure
也可从源码仓库的.s3目录获取空白.s3cfg模板,手动配置。
--ssl选项启用SSL--server-side-encryption指定KMS密钥-e或--encrypt标志加密选项也可在.s3cfg配置文件中定义。
详见s3cmd官方文档。
该容器设计用于K8s CRONJOB,可使用提供的s3-dump-cronjob.yaml作为模板。
创建s3cmd配置ConfigMap:
shkubectl create configmap s3config --from-file $HOME/.s3
存储数据库凭据到Secret(推荐最佳实践)
部署CRONJOB:
配置数据卷/路径、桶信息(通过文件或环境变量:YOUR_KMS_KEY_ID、YOUR_BUCKET_NAME、MYSQL_HOST、MYSQL_USER、MYSQL_PASSWORD/secret、DATABASE_NAMES)后,执行:
shkubectl create -f s3-dump-cronjob.yaml
提示:启用S3桶版本控制可实现高效的版本化数据库备份系统。
如需将其他数据存储到S3兼容对象存储,建议使用d3fk/s3cmd镜像,基于Alpine,仅包含s3cmd工具,以s3cmd为入口点。
GitHub代码仓库内容基于MIT许可证。s3cmd许可证详见[***]






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