博客
关于我
Docker部署postgresql-11以及主从配置
阅读量:787 次
发布时间:2023-01-23

本文共 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;

转载地址:http://vpeyk.baihongyu.com/

你可能感兴趣的文章
C++ switch混淆
查看>>
02-docker系列-镜像分类以及操作(导入、导出、删除)
查看>>
02-Docker镜像分类及操作秘籍,轻松掌握导出、导入、删除
查看>>
03-docker容器的基本操作
查看>>
03-docker系列-docker容器的基本操作
查看>>
04-docker-commit构建自定义镜像
查看>>
04-docker系列-commit构建自定义镜像
查看>>
05-docker系列-使用dockerfile构建镜像
查看>>
05-如何通过Dockerfile实现高效的应用容器化?
查看>>
06-docker系列-使用dockerfile构建nginx、redis镜像
查看>>
06-使用dockerfile构建nginx、redis镜像
查看>>
07-docker系列-使用dockerfile构建python、jenkins镜像
查看>>
07-使用dockerfile构建python、jenkins镜像
查看>>
08-docker系列-docker网络你了解多少(上)
查看>>
09-docker系列-docker网络你了解多少(下)
查看>>
1 解决XP重装后原文件夹拒绝访问
查看>>
10-docker系列-docker文件共享和特权模式
查看>>
#AMBA##AHB总线学习
查看>>
#C++# 关于 #ifdef __cplusplus extern “C“ { #endif
查看>>
#C2#S2.1# 一个简单的UVM验证平台
查看>>