在CentOS上连接Docker中的PostgreSQL数据库需要以下步骤:

  1. 确保已经安装了Docker和Docker Compose。如果没有安装,可以按照官方文档的指导进行安装。

  2. 创建一个Docker Compose文件(docker-compose.yml),用于定义和配置数据库容器。以下是一个示例文件:

version: '3'
services:
  postgres:
    image: postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=myuser
      - POSTGRES_PASSWORD=mypassword
      - POSTGRES_DB=mydb
    volumes:
      - ./data:/var/lib/postgresql/data

上述配置中,我们使用了官方的PostgreSQL镜像,并将主机的5432端口映射到容器的5432端口。我们还定义了一个名为postgres的服务,设置了用户名、密码和数据库名称,并将数据保存在主机的./data目录下。

  1. 在终端中进入包含docker-compose.yml文件的目录,并运行以下命令启动数据库容器:
docker-compose up -d

这将使用Docker Compose根据配置文件创建和启动PostgreSQL容器。-d选项表示以后台模式运行容器。

  1. 确认数据库容器已经成功运行,可以使用以下命令查看正在运行的容器:
docker ps

应该会看到一个名为postgres的容器。

  1. 现在可以使用任何支持PostgreSQL的客户端连接到Docker中的数据库。我们可以使用psql命令行工具进行连接。

首先,需要在CentOS上安装psql客户端。运行以下命令进行安装:

sudo yum install postgresql
  1. 安装完成后,使用以下命令连接到Docker中的PostgreSQL数据库:
psql -h localhost -U myuser -d mydb

这将连接到本地主机(因为我们将容器的5432端口映射到主机的5432端口),使用用户名myuser和数据库名mydb进行身份验证。

  1. 如果一切正常,您将进入psql命令行提示符,表示已经成功连接到数据库。您可以执行各种SQL命令和查询。

下面是一个示例的交互式会话:

psql (12.3)
Type "help" for help.

mydb=# SELECT * FROM mytable;

在上述示例中,我们使用SELECT语句从名为mytable的表中检索数据。

以上是在CentOS上连接Docker中的PostgreSQL数据库的步骤。通过Docker Compose配置和管理容器,我们可以轻松地在CentOS上启动和连接到PostgreSQL数据库。使用psql客户端可以执行各种操作,包括查询、插入、更新和删除数据等。