MySQL
如果你想迁移 Docker 中运行的 MySQL 数据库的全部数据,你可以使用 mysqldump
命令,它是 MySQL 自带的数据备份工具。
以下是如何使用 mysqldump
命令来备份和恢复数据的步骤:
-
首先,你需要使用
mysqldump
命令在运行 MySQL 容器的 Docker 实例中创建一个数据库备份。你可以通过以下命令做到这一点:docker exec mysql_container_name sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > all-databases.sql
这个命令会创建一个名为
all-databases.sql
的文件,该文件包含了 MySQL 数据库中的所有数据。 -
然后,你可以将备份文件移动到新的 Docker 实例中。你可以使用
docker cp
命令来完成这一操作:docker cp all-databases.sql mysql_container_name:/all-databases.sql
-
最后,你可以在新的 Docker 实例中恢复数据库。你可以使用以下命令来恢复数据:
docker exec -i mysql_container_name mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < all-databases.sql
在这些步骤中,mysql_container_name
是你的 MySQL 容器的名称,$MYSQL_ROOT_PASSWORD
是 MySQL root 用户的密码。
请记住,你应该在执行这些步骤之前确保你的数据是安全的,并且应该尽可能地避免在生产环境中直接进行这些操作,除非你完全了解它们的含义和可能的后果。
PostgreSQL
如果你想迁移在 Docker 中运行的 PostgreSQL 数据库的全部数据,你可以使用 pg_dumpall
命令。这是一个 PostgresSQL 自带的工具,用于备份数据库。
以下是如何使用 pg_dumpall
命令来备份和恢复数据的步骤:
-
备份数据:首先,你需要在运行 PostgreSQL 容器的 Docker 实例中创建一个数据库备份。你可以通过以下命令做到这一点:
docker exec postgres_container_name pg_dumpall -c -U postgres > db_backup.sql
这个命令会创建一个名为
db_backup.sql
的文件,该文件包含了 PostgreSQL 数据库中的所有数据。 -
移动备份文件:然后,你可以将备份文件移动到新的 Docker 实例中。你可以使用
docker cp
命令来完成这一操作:docker cp db_backup.sql postgres_container_name:/db_backup.sql
-
恢复数据:最后,你可以在新的 Docker 实例中恢复数据库。你可以使用以下命令来恢复数据:
docker exec -i postgres_container_name psql -U postgres < db_backup.sql
在这些步骤中,postgres_container_name
是你的 PostgreSQL 容器的名称。
请注意,你应该在执行这些步骤之前确保你的数据是安全的,并且应该尽可能地避免在生产环境中直接进行这些操作,除非你完全了解它们的含义和可能的后果。