📅  最后修改于: 2023-12-03 14:40:48.970000             🧑  作者: Mango
对于需要在 Docker 中运行数据库的应用程序,备份和导入数据是必不可少的。Docker Compose 方便了这一过程,因为它可以轻松地启动和停止多个 Docker 容器组成的应用程序。在本教程中,我们将介绍如何使用 Docker Compose 导入数据库备份文件。
如果您已经安装了 Docker,请跳过此步骤。
要在 Ubuntu 上安装 Docker Compose,请打开终端并运行以下命令:
sudo curl -L "https://github.com/docker/compose/releases/download/<version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
请将 <version>
替换为您要安装的版本。您可以在 Docker Compose 的官方 GitHub 仓库中找到可用版本的列表。
在本示例中,我们将使用 Docker Compose 启动 PostgreSQL 数据库。首先,在您的项目目录中创建一个名为 docker-compose.yml
的文件,并将以下代码添加到该文件中:
version: '3'
services:
db:
image: postgres
ports:
- "5432:5432"
volumes:
- ./database:/var/lib/postgresql/data
这将创建一个名为 "db" 的服务,该服务使用 PostgreSQL Docker 镜像。它会将容器中的端口 5432 映射到主机上的端口 5432。此外,它将数据库的数据存储在名为 ./database
的目录中,这是我们稍后将使用的位置。
现在,您需要将数据库备份文件复制到 ./database
目录中。然后,在终端中转到项目目录并运行以下命令:
docker-compose up -d
docker cp dump.sql <container name/id>:/dump.sql
docker-compose down
在以上 docker cp
命令中,您需要将 <container name/id>
替换为在您的系统上正在运行的数据库容器的名称或 ID。
一旦备份文件已经复制到容器中,您可以使用以下命令还原数据库:
docker-compose up -d
docker exec <container name/id> bash -c "psql -U postgres -d <database name> -f /dump.sql"
docker-compose down
在以上命令中,您需要将 <container name/id>
替换为在您的系统上正在运行的数据库容器的名称或 ID,<database name>
替换为正在恢复的数据库名称。
在本教程中,我们介绍了如何使用 Docker Compose 在 Docker 容器中下载和导入数据库备份文件。使用此方法可以方便地在开发、测试或生产环境中管理数据库数据。