Docker部署postgresql-11以及主从配置
发布日期:2025-03-28 15:13:39 浏览次数:4 分类:精选文章

本文共 2178 字,大约阅读时间需要 7 分钟。

Docker部署PostgreSQL-11以及主从配置

一. Docker部署PostgreSQL-11(简单版)

1. 拉取镜像

运行以下命令拉取PostgreSQL-11的镜像:

docker pull docker.io/postgres:11

2. 启动命令脚本

创建并编辑启动脚本startPostgres.sh

vi startPostgres.sh

脚本内容如下:

#!/bin/bashdocker run -d --name postgresql-11 \--restart=always \-v /postgresql/data:/var/lib/postgresql/data \-e POSTGRES_PASSWORD=123456 \-p 5432:5432 \docker.io/postgres:11

3. 给脚本写权限

对脚本进行权限设置:

chmod +x startPostgres.sh

4. 执行启动脚本

在终端执行脚本:

./startPostgres.sh

5. 查看日志或启动报错

查看容器日志或检查启动错误:

docker logs postgresql-11

如果遇到报错,重新启动容器:

docker restart postgresql-11

6. 安装中文编码(如果有报错)

进入容器并安装所需的中文编码:

docker exec -it postgresql-11 /bin/bash#安装localessudo apt-get install locales#设置语言环境sudo dpkg-reconfigure locales

7. 重启动容器

确保所有配置正确后,重新启动容器:

docker start postgresql-11

二. 【最全】从Docker中运行PostgreSQL数据库

1. 使用PostgreSQL数据库

在Docker中使用PostgreSQL有三种方式:通过Dockerfile、Docker Compose或直接命令运行。以下以Docker Compose方式示例:

1. 准备环境

确保Docker和Docker Compose已安装。当Apparently这些工具的版本:

查看内核版本:

uname -a

查看Docker版本:

docker --versiondocker-compose --version

2. 拉取镜像(基于官方镜像)

拉取适用于你的系统的PostgreSQL镜像。例如,在Ubuntu 20.04上运行:

docker pull postgres:15-bullseye

3. 创建目录并启动PostgreSQL

创建PostgreSQL数据目录并启动容器:

mkdir dockerdata/postgresql && cd dockerdata/postgresql

配置docker-compose.yml文件:

vim docker-compose.yml

内容示例:

version: '2.3'services:  pgdb:    image: postgres:15-bullseye    restart: always    environment:      POSTGRES_PASSWORD: ggyy      POSTGRES_USER: ggyy    ports:      - 5439:5439    volumes:      - ./postgres:/data/postgres  postgres-db:    driver: local

4. 启动数据库容器

运行Docker Compose:

docker-compose -f docker-compose.yml up -d

5. 连接数据库

进入PostgreSQL数据库:

docker exec -it postgresql_pgdb_1 psql -U ggyy

(注意:请根据实际设置的用户名和密码替换。)


三. PostgreSQL基础命令

1. SELECT

基础查询语法:

SELECT first_name, last_name, email FROM customer;

可 tùy文风 kaphanurtles viewers 使用\x分隔结果:

SELECT first_name || ' ' || last_name, email FROM customer;

2. WHERE

WHERE子句的基本用法:

SELECT columns_list FROM table_name WHERE query_condition;

举例:

SELECT first_name FROM customer WHERE first_name LIKE 'ANN%';

或使用BETWEENLIKE结合:

SELECT first_name, LENGTH(first_name) name_lengthFROM customerWHERE first_name LIKE 'A%'AND LENGTH(first_name) BETWEEN 3 AND 5ORDER BY name_length;
上一篇:EnvironmentNotWritableError: The current user does not have write permissions to the target environm
下一篇:Docker容器进入的4种方式(推荐最后一种)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年05月06日 03时50分03秒