This commit is contained in:
wandoubaba 2023-09-09 16:55:46 +08:00
parent 13841b5fb1
commit 8f1a3464a2

View File

@ -12,58 +12,42 @@
mkdir /data/postgres -p mkdir /data/postgres -p
``` ```
## 创建Dockerfile
> postgres官方的镜像中不包含zh_CN.utf8环境因此不支持数据按中文拼音排序所以需要通过Dockerfile生成自定义镜像。**支持中文排序这一特性会损失pg查询性能**。
在`/data/postgres`目录中创建`Dockerfile`文件:
```sh
touch Dockerfile
vim Dockerfile
```
文件内容如下(注意版本要“与时俱进”和“按需选择”):
```Dockerfile
FROM postgres:14
RUN localdef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8
ENV LANG zh_CN.utf8
```
使用`docker build`创建自定义镜像(修改自己的前缀):
```sh
docker build -t wandoubaba/postgres .
```
接下来使用`docker images`命令查看本地镜像:
```sh
docker images
```
应该可以看到`postgres`和`wandoubaba/postgres`镜像了。
## 创建编排文件 ## 创建编排文件
创建文件`/data/postgres/docker-compose.yml`,内容如下(注意自己改管理员账号密码): 创建文件`/data/postgres/docker-compose.yml`内容如下注意自己改postgres用户的密码
> `image`一行要用自己编译的镜像名。 以host模式启动的编排文件
```yml ```yml
version: "3.1" version: "3.1"
services: services:
db: db:
image: wandoubaba/postgres image: postgres:14
restart: always restart: always
environment: environment:
POSTGRES_PASSWORD: password POSTGRES_PASSWORD: NASDnyeUgql6U4I9fa
PGDATA: /var/lib/postgresql/data/pgdata PGDATA: /var/lib/postgresql/data/pgdata
ports:
- 5432:5432
volumes: volumes:
- ./data:/var/lib/postgresql/data - ./data:/var/lib/postgresql/data
network_mode:
host
```
以映射端口方式启动的编排文件:
```yml
version: "3.1"
services:
db:
image: postgres:14
restart: always
environment:
POSTGRES_PASSWORD: NASDnyeUgql6U4I9fa
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ./data:/var/lib/postgresql/data
ports:
- 5432:5432
``` ```
## 启动容器 ## 启动容器
@ -76,6 +60,8 @@ docker-compose up -d
## 查看当前postgres版本 ## 查看当前postgres版本
### 方法一 - 进入容器使用命令
先用`docker ps`命令找到postgres容器实例假设实例id是`52a63c60bb59` 先用`docker ps`命令找到postgres容器实例假设实例id是`52a63c60bb59`
```sh ```sh
@ -83,4 +69,22 @@ docker exec -it 52a63c60bb59 /bin/bash
# 进入容器后执行下面命令 # 进入容器后执行下面命令
psql --version psql --version
# psql (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1) # 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)|
``` ```