在本教程中,我将向您展示如何轻松的在容器中运行数据库。
一、介绍
Docker正在改变我们分发和安装软件的方式,它在软件开发的许多领域中也是非常受欢迎的工具。在本文中,我将向您展示如何快速使用docker和PostgreSQL。
我将尽力使这篇文章非常简单,不涉及复杂的工作流程(稍后的文章中将介绍这些内容),这将使讨论重点不断集中,并有助于轻松学习。现在的想法是,我不知道,您将照亮旧的神经元并创建其中的aha时刻。
我假设您已经在机器上安装了docker并且正在运行。
拉取镜像
以下命令将从官方Postgres docker hub存储库中拉出最新的稳定发行版Postgres镜像。
>>docker pull postgres
持续数据
容器数据一旦停止就消失了,这在某些情况下很有用(例如,如果您正在运行一些数据库/集成测试,并且想要摆脱测试数据,那就太好了)。但是,如果要在容器的生命周期之外保留由在容器内运行的Postgres实例生成的数据,则需要将本地安装点作为数据卷映射到容器内的适当路径。
运行容器
>> docker run –name pg - docker - e POSTGRES_PASSWORD = docker - e PGDATA = / tmp - d - p 5433:5432 - v $ { PWD }:/ var / lib / postgresql / data postgres:11
以下命令改变也使用另一个环境变量来设置数据库:
>>docker run --name pg-docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=sampledb -e PGDATA=/tmp -d -p 5433:5432 -v ${PWD}:/var/lib/postgresql/data postgres:11
连接和使用PostgreSQL
一旦容器开始运行,从应用程序连接到容器与连接到在Docker容器外部运行的Postgres实例没有什么不同。 例如,要使用psql连接,我们可以执行
>>psql -h localhost -U postgres -d postgres
或者您可以使用Azure Data Studio进行连接,如下所示:
我们还可以使用以下命令在容器内运行psql:
我们还可以按如下所示的类似方式运行sql-script:
>>docker exec -it pg-docker psql -U postgres -f /opt/scripts/test_script.sql
Docker文件
您可以单独运行上述命令,但是通常,您将创建一个docker文件来构建镜像。让我们创建一个docker文件来构建设置要求。
注意复制命令,该命令将脚本文件从主机目录复制到容器。
我有两个简单的SQL脚本文件,如下所示:
以下是这些脚本文件的内容,可以根据需要进行调整:
2-createtable.sql
3-insertdata.sql
为文件名赋予数字升序值有助于控制执行顺序。
现在,所有这些都就位了,我们现在可以使用此docker文件构建映像:
>>docker image build -t postgresbasic .
>>docker run --name pg-docker -e PGDATA=/tmp -d -p 5433:5432 -v ${PWD}:/var/lib/postgresql/data postgresbasic
最后,我们现在可以使用psql或Azure Data Studio检查数据库。
发表评论