pgadmin 连接镜像的 postgresql_系列教程丨用 Docker 探索开源软件 —— PostgreSQL(一)...

79824498d051dd6191b8715b2d5f2c62.png

每周一、三、五,与您不见不散!


Docker 的一大优点是可以让您快速使用它来试用应用程序,而无需直接在开发人员的计算机上安装它。如果您不想在自己的计算机上安装 Java 或 erlang 等运行时环境,那么您就可以不安装它们,因为容器封装了所有依赖项,并在删除时可以不留下任何痕迹。在上一篇文章《系列教程丨用 Docker 探索开源软件 —— Redis》中,我们看到了“docker run”和“docker exec”命令的实际应用,今天,我将带来本系列第二篇文章,用 Docker 探索开源软件 —— PostgreSQL,它将给我们一个机会来看看 Docker Volumes 是如何运行的。

如果您已经安装了 Docker,则可以直接按照本教程中的命令进行操作。如果您还没有安装 Docker,那么有一个很好的选择是使用 Play with Docker,它可以让我们直接在浏览器中运行所有命令。


启动一个运行 PostgreSQL 的新容器

我们将使用“docker run”命令,用“postgres”官方镜像启动一个新容器,名称为“postgres1”,并公开端口5432(PostgreSQL 的默认值)。我们正在运行分离(-d)模式(在后台)。

我们同样用“-v”挂载一个 volume,它将用于存储我们创建的数据库。这个 volume 的名称是“postgres-data”,如果不存在具有此名称的 volume,Docker 将自动创建它(仅使用 Docker 主机上本地磁盘的存储)。

PostgreSQL 将其数据存储在“/var/lib/postgresql/data”中,因此我们将 volume 挂载到该路径。

docker run -d -p 5432:5432 -v postgres-data:/var/lib/postgresql/data ` --name postgres1 postgres

一旦我们完成了这一步,我们就可以开始检查它的运行情况了:

docker ps

查看日志输出:

docker logs postgres1

创建数据库

我们将创建一个数据库。一种简单的方法是使用“docker exec”命令在“postgres1”容器中启动一个交互式shell,其中安装了 PostgreSQL CLI 工具。这将使我们无需使用任何工具来连接和管理本地安装的 PostgreSQL 数据库。

docker exec -it postgres1 sh

在这个 shell 中,我们可以使用它创建一个名为“mydb”的新数据库。

# createdb -U postgres mydb

然后让我们启动“psql”实用工具,它是 PostgreSQL 的 CLI 工具,连接到我们的“mydb”数据库:

# psql -U postgres mydb

浏览数据库

现在,在“psql”中,让我们运行一些基本命令。“l”列出数据库。我们还可以查询数据库版本和当前日期:

mydb=# lmydb=# select version();mydb=# select current_date;

接下来,让我们来做一些更有趣的事情。我们将创建一个表:

mydb=# CREATE TABLE people (id int, name varchar(80));CREATE TABLE

然后我们将在表中插入一行:

mydb=# INSERT INTO people (id,name) VALUES (1, 'Mark');INSERT 0 1

最后,检查一下:

mydb=# SELECT * FROM people; id | name----+------ 1 | Mark(1 row)

现在我们可以使用“q”退出“psql”以及我们的 shell:

mydb=# q# exit

当然,我们的“postgres1”容器仍然在运行。

以下是使用docker-compose安装postgreSQLpgadmin以及yum安装pgagent的步骤: 1. 创建一个docker-compose.yml文件,内容如下: ```yaml version: '3' services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: example ports: - "5432:5432" volumes: - ./data:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 restart: always environment: PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: admin ports: - "5050:80" pgagent: build: ./pgagent restart: always depends_on: - db environment: PGAGENT_HOST: db PGAGENT_PORT: 5432 PGAGENT_USER: postgres PGAGENT_PASSWORD: example ``` 其中,db服务使用postgres镜像创建一个postgreSQL数据库,pgadmin服务使用dpage/pgadmin4镜像创建pgadmin,pgagent服务使用Dockerfile创建pgagent。 2. 创建一个Dockerfile文件,内容如下: ```dockerfile FROM centos:7 RUN yum -y update && \ yum -y install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm && \ yum -y install postgresql96-contrib && \ yum -y install https://download.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm && \ yum -y install pgagent CMD ["pgagent", "-f", "-l", "/var/log/pgagent.log"] ``` 这个Dockerfile文件使用centos:7镜像作为基础镜像,然后安装postgresql96-contrib、pgadmin4和pgagent。 3. 在与docker-compose.yml文件相同的目录下创建一个pgagent目录,并在该目录下创建一个空的pgagent.log文件。 4. 在终端中进入docker-compose.yml文件所在的目录,运行以下命令启动服务: ```shell docker-compose up -d ``` 5. 访问http://localhost:5050/,使用刚才设置的PGADMIN_DEFAULT_EMAIL和PGADMIN_DEFAULT_PASSWORD登录pgadmin。 6. 在pgadmin中添加一个postgreSQL服务器,输入以下信息: ``` Name: 任意名称 Host: db Port: 5432 Maintenance database: postgres Username: postgres Password: example ``` 7. 在pgadmin中创建一个pgagent任务,输入以下信息: ``` Name: 任意名称 Enabled: 勾选 Description: 任意描述 Host: db Port: 5432 Database: postgres Username: postgres Password: example ``` 8. 在pgadmin中为pgagent任务添加一个步骤,例如执行一个SQL查询,然后设置该步骤的调度时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值