Docker运行的MariaDB数据库命令行自动备份方案求助
Docker MariaDB容器备份解决方案(解决无mysqldump问题)
方案1:切换至官方MariaDB镜像
官方MariaDB Docker镜像默认预装mysqldump,若当前使用的是精简/自定义镜像,替换为官方镜像后,原备份命令即可正常运行:
sudo docker exec <ContainerId> mysqldump -u <username> -p<password> <dbname> > <backupfilename>.sql
注意:替换前务必备份现有容器内的数据,避免丢失。
方案2:在现有容器内安装mysqldump
进入容器执行安装命令(适用于Debian/Ubuntu系基础镜像):
sudo docker exec -it <ContainerId> apt update && apt install -y mariadb-client
安装完成后,即可使用原命令执行备份。
方案3:从宿主机直接连接数据库备份
若宿主机已安装mariadb-client(或mysql-client),可跳过容器内工具,直接从宿主机连接备份:
mysqldump -h 127.0.0.1 -P <宿主机映射端口> -u <username> -p<password> <dbname> > <backupfilename>.sql
需提前确认容器的3306端口已映射到宿主机对应端口。
方案4:物理备份Docker卷数据
若MariaDB的数据目录已挂载为Docker卷,可直接备份卷内的物理数据文件:
sudo docker run --rm -v <你的MariaDB卷名>:/source -v /宿主机备份路径:/target busybox cp -r /source/* /target/
恢复时将备份文件放回对应卷即可。
内容的提问来源于stack exchange,提问作者Kirtiraj Solanki
相关产品推荐
相关产品推荐

