# Docker部署Postgres数据库服务

> wandoubaba / 2024-10-29

## 创建存储目录

比如创建`/app/postgres/`目录。

```sh
mkdir /app/postgres -p
```

## 创建docker-compose.yml文件

创建文件`/app/postgres/docker-compose.yml`，内容如下（注意自己改postgres用户的密码）：

以host网络启动：

```yml
services:
  db:
    image: postgres:14
    container_name: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: PASSWORD
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - ./data:/var/lib/postgresql/data
    network_mode:
      host
```

以bridge网络启动（推荐）：

```yml
services:
  db:
    image: postgres:14
    container_name: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: PASSWORD
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - ./data:/var/lib/postgresql/data
    ports:
      - 5432:5432
```

## 启动容器

在`/app/postgres`目录下执行下面的命令：

```sh
docker compose up -d
```

## 查看当前postgres版本

### 方法一 - 进入容器使用命令

```sh
docker exec -it postgres /bin/bash
# 进入容器后执行下面命令
psql --version
# psql (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1)
postgres --version
# postgres (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1)
pg_config | grep VERSION
# VERSION = PostgreSQL 14.1 (Debian 14.1-1.pgdg110+1)
```

### 方法二 - 连接数据库使用查询命令

```sql
show server_version;
```

结果如下：

```txt
server_version                |
------------------------------+
14.1 (Debian 14.1-1.pgdg110+1)|
```
