首先确认 MySQL 容器正在运行并获取容器名称和登录凭据,然后使用 docker exec 结合 mysqldump 命令导出数据库,如 docker exec mysql-container mysqldump -u root -p database_name > backup.sql,支持导出单库或全库,文件默认保存在宿主机当前目录,建议指定完整路径并确保写入权限,大数据量时可结合 gzip 压缩输出,如 | gzip > backup.sql.gz。

在使用 MySQL 镜像(如 Docker 中的 MySQL 容器)时,导出数据库是常见操作,用于备份、迁移或恢复数据。下面介绍如何从 MySQL 镜像中正确配置并导出数据库内容。
确认容器运行状态
导出前需确保 MySQL 容器正在运行,并知道容器名称或 ID 以及数据库登录凭据。
使用 mysqldump 导出数据库
最常用方式是通过 mysqldump 命令将数据库导出为 SQL 文件。
- 执行命令导出单个数据库:
docker exec mysql-container mysqldump -u root -p database_name > backup.sql - 若已设置密码 环境变量,可直接使用:
docker exec mysql-container mysqldump -u root –password=your_password database_name > backup.sql - 导出所有数据库:
docker exec mysql-container mysqldump -u root -p –all-databases > full_backup.sql
导出文件保存位置与权限处理
注意导出文件默认保存在宿主机当前目录,需确保有写入权限。
- 建议指定完整路径避免丢失:
docker exec mysql-container mysqldump -u root -p database_name > /host/path/backup.sql - 若提示权限不足,检查目录权限或使用 sudo
- 也可先在容器内生成文件,再复制出来:
先执行:docker exec mysql-container sh -c ‘mysqldump -u root -p$MYSQL_ROOT_PASSWORD database_name’ > backup.sql
压缩导出以节省空间
大数据 量时建议直接压缩输出。
- 导出并压缩为 gzip 文件:
docker exec mysql-container mysqldump -u root -p database_name | gzip > backup.sql.gz - 解压 后可用于导入:
gunzip
基本上就这些。只要容器正常运行,使用 docker exec 调用 mysqldump 是最稳定可靠的导出方式。注意保护好导出文件中的敏感信息,避免泄露。