目录
PostgreSQL启动示例
- PostgreSQL启动示例
- Docker方式
- Docker-Compose方式
- 总结
以使用的目前稳定的最新版本12.4为例,容器化的PostgreSQL实例启动相关的设定希望如下所示:
设定项 设定内容 PostgreSQL版本 12.4 DockerHub postgres:12.4-alpine 环境变量:postgres用户密码 liumiaocn 数据卷:PostgreSQL数据 /var/lib/postgresql/data 端口映射 5432:5432 Docker方式- 执行命令如下所示
docker run --name postgres -p 5432:5432 -v ${PWD}/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=liumiaocn -d postgres:12.4-alpine
- 启动日志示例
liumiaocn:postgres liumiao$ docker run --name postgres -p 5432:5432 -v ${PWD}/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=liumiaocn -d postgres:12.4-alpine 9e7d7c6a19fd53ecfe2221083c27083501296c6436d0c7aec15b3612cb18374b liumiaocn:postgres liumiao$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9e7d7c6a19fd postgres:12.4-alpine "docker-entrypoint.s…" 2 seconds ago Up 1 second 0.0.0.0:5432->5432/tcp postgres liumiaocn:postgres liumiao$
- 结果确认
liumiaocn:~ liumiao$ export PGPASSWORD=liumiaocn;psql -h localhost -p 5432 postgres postgres psql (12.4) Type "help" for help. postgres=# select version(); version --------------------------------------------------------------------------------------- PostgreSQL 12.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit (1 row) postgres=#Docker-Compose方式 设定项 设定内容 PostgreSQL版本 12.4 DockerHub postgres:12.4-alpine 环境变量:postgres用户密码 liumiao 数据卷:PostgreSQL数据 /var/lib/postgresql/data 端口映射 35432:5432
liumiaocn:postgres liumiao$ cat docker-compose.yml version: '2' services: # database service: PostgreSQL postgres: image: postgres:12.4-alpine ports: - "35432:5432" volumes: - ./data/:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=liumiao restart: "no" liumiaocn:postgres liumiao$
- 启动日志示例
liumiaocn:postgres liumiao$ ls docker-compose.yml liumiaocn:postgres liumiao$ docker-compose up -d Creating network "postgres_default" with the default driver Creating postgres_postgres_1 ... done liumiaocn:postgres liumiao$ ls data docker-compose.yml liumiaocn:postgres liumiao$
- 结果确认
liumiaocn:postgres liumiao$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------- postgres_postgres_1 docker-entrypoint.sh postgres Up 0.0.0.0:35432->5432/tcp liumiaocn:postgres liumiao$ liumiaocn:postgres liumiao$ docker exec -it postgres_postgres_1 sh / # psql -U postgres psql (12.4) Type "help" for help. postgres=# select version(); version --------------------------------------------------------------------------------------- PostgreSQL 12.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit (1 row) postgres=#
或者从外部客户端连接确认:
liumiaocn:postgres liumiao$ export PGPASSWORD=liumiao;psql -h localhost -p 35432 postgres postgres psql (12.4) Type "help" for help. postgres=# select version(); version --------------------------------------------------------------------------------------- PostgreSQL 12.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit (1 row) postgres=#总结
这篇文章整理了使用Docker或者Docker Compose构建PostgreSQL环境的方法。