📜  postgresql docker - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:18:38.237000             🧑  作者: Mango

PostgreSQL Docker - Shell/Bash

当需要在一个应用程序中使用数据库时,通常使用关系型数据库。其中一个流行的关系型数据库是PostgreSQL。而在开发和部署应用程序时,使用Docker可以使进程更加容易,即使是在不同的环境中也可以保持一致。在这篇文章中,我们将学习如何使用Docker和Shell/Bash来启动PostgreSQL数据库。

环境要求

本文假定你已经具有以下环境:

  • Docker
  • Shell/Bash知识
步骤1:创建一个Dockerfile

首先,我们需要创建一个Dockerfile来构建PostgreSQL的Docker映像。Dockerfile是一个文本文件,用于描述如何构建我们映像的脚本。创建一个新的Dockerfile,命名为Dockerfile,在其中添加以下命令:

FROM postgres:latest
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker
EXPOSE 5432

此Dockerfile使用postgres:latest镜像 (最新版本),并设置了三个环境变量 (POSTGRES_USER、POSTGRES_PASSWORD和POSTGRES_DB)。此外,我们还暴露了端口5432,这是PostgreSQL默认使用的端口。

步骤2:构建Docker映像

在构建一个Docker映像之前,确保你在Dockerfile所在目录中,然后运行下面的命令:

docker build -t my-postgres .

在这个命令中,-t 选项是给我们的映像命名的,这里我们选择名为my-postgres,并且注意最后有个“.”来指示我们的Dockerfile路径在当前目录下。

步骤3:启动PostgreSQL容器

现在我们已经构建了我们的PostgreSQL映像,下一步就是启动容器并且运行PostgreSQL。我们将为容器分配一个名称postgres-docker,并将我们的数据保存在另一个容器名称为postgres-data的容器中。要运行此命令,输入以下命令:

docker run --name postgres-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 --volumes-from postgres-data my-postgres

这个命令有以下三个参数:

  • --name postgres-docker:为我们的容器命名
  • -e POSTGRES_PASSWORD=docker:设置postgres用户的密码。
  • -d标志:通过容器运行PostgreSQL,并在后台运行它
  • -p 5432:5432 参数,将5432端口在容器内映射到主机的5432端口。
  • --volumes-from postgres-data:在postgres-data容器中保存数据,作为一个数据卷。

我们已经在Docker中成功运行了PostgreSQL。

步骤4:连接到PostgreSQL

现在我们需要连接到运行中的PostgreSQL容器。我们可以使用psql工具来连接到新构建的容器中,使用下面的命令:

psql -h localhost -U docker -d docker

运行此命令后,你将看到PostgreSQL提示符,并且你可以使用SQL命令交互式地查询和修改你的数据。

结论

在这篇文章中,我们学习了如何使用Docker和Shell/Bash来启动PostgreSQL数据库。使用这些工具,我们可以实现简单的数据库开发和部署,并将它们打包为映像,以便在不同的环境中重用它们。我们希望这篇文章可以对正在学习Docker和PostgreSQL的开发人员提供帮助。