📜  docker compose import db dump (1)

📅  最后修改于: 2023-12-03 14:40:48.970000             🧑  作者: Mango

Docker Compose 下载数据库备份文件

对于需要在 Docker 中运行数据库的应用程序,备份和导入数据是必不可少的。Docker Compose 方便了这一过程,因为它可以轻松地启动和停止多个 Docker 容器组成的应用程序。在本教程中,我们将介绍如何使用 Docker Compose 导入数据库备份文件。

步骤
步骤 1 - 安装 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 仓库中找到可用版本的列表。

步骤 2 - 创建 Docker Compose 文件

在本示例中,我们将使用 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 的目录中,这是我们稍后将使用的位置。

步骤 3 - 导入数据库备份文件

现在,您需要将数据库备份文件复制到 ./database 目录中。然后,在终端中转到项目目录并运行以下命令:

docker-compose up -d
docker cp dump.sql <container name/id>:/dump.sql
docker-compose down

在以上 docker cp 命令中,您需要将 <container name/id> 替换为在您的系统上正在运行的数据库容器的名称或 ID。

步骤 4 - 恢复数据库

一旦备份文件已经复制到容器中,您可以使用以下命令还原数据库:

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 容器中下载和导入数据库备份文件。使用此方法可以方便地在开发、测试或生产环境中管理数据库数据。