📅  最后修改于: 2023-12-03 15:18:38.237000             🧑  作者: Mango
当需要在一个应用程序中使用数据库时,通常使用关系型数据库。其中一个流行的关系型数据库是PostgreSQL。而在开发和部署应用程序时,使用Docker可以使进程更加容易,即使是在不同的环境中也可以保持一致。在这篇文章中,我们将学习如何使用Docker和Shell/Bash来启动PostgreSQL数据库。
本文假定你已经具有以下环境:
首先,我们需要创建一个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默认使用的端口。
在构建一个Docker映像之前,确保你在Dockerfile所在目录中,然后运行下面的命令:
docker build -t my-postgres .
在这个命令中,-t 选项是给我们的映像命名的,这里我们选择名为my-postgres,并且注意最后有个“.”来指示我们的Dockerfile路径在当前目录下。
现在我们已经构建了我们的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
这个命令有以下三个参数:
我们已经在Docker中成功运行了PostgreSQL。
现在我们需要连接到运行中的PostgreSQL容器。我们可以使用psql工具来连接到新构建的容器中,使用下面的命令:
psql -h localhost -U docker -d docker
运行此命令后,你将看到PostgreSQL提示符,并且你可以使用SQL命令交互式地查询和修改你的数据。
在这篇文章中,我们学习了如何使用Docker和Shell/Bash来启动PostgreSQL数据库。使用这些工具,我们可以实现简单的数据库开发和部署,并将它们打包为映像,以便在不同的环境中重用它们。我们希望这篇文章可以对正在学习Docker和PostgreSQL的开发人员提供帮助。