centos8,Docker上安装的postgres

  |  

我用的是 centos8 服务器,在安装 postgres 数据库先安装 docker,这里我安装的是 postgres12

centos8 安装 docker

  1. 下载 docker-ce 的 repo
    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  1. 安装依赖(七 不用这一步)
    yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
  1. 安装 docker-ce
    yum install docker-ce
  1. 启动 docker
    systemctl start docker

安装之后将 postgres 从 docker hub 包管理器 pull 当前到服务器

docker pull postgres:12

查看镜像 $: docker images
在这里插入图片描述

  1. 先创建一个 postgresql.conf 文件 写在 /data/docker/postgres/下,没有目录就创建

在 postgresql.conf 写入 (注释的不要写)

listen_addresses = '*'
//监听地址,默认为当前服务器地址 []docker 内部绑定容器需要使用号 不能使用 127 127 是相对于母机的如果跨 docker 没用 docker 内部指向不一样
port = 5432
//postgres 使用端口号默认 5432
max_connections = 1000
//最大连接数
shared_buffers = 1024MB
wal_level = replica
//只保存操作日志的具体程度级别,postgres10 之后有选项三个【minimal,replica,logical】设,要设置 WAL 归档至少要设置为 replica

1
2
3
4
5
listen_addresses = '*'
port = 5432
max_connections = 1000
shared_buffers = 1024MB
timezone = 'Asia/Shanghai' # 设置数据库时区

然后使用 docker 安装(注释的不要)

$: docker run –name postgres
//设置镜像名字叫做 postgres
-e POSTGRES_PASSWORD=123456
//设置 postgres 服务器初始密码
-p 5432:5432
//将 docker 内部端口 5432 映射绑定到服务器端口 5432

-v /data/docker/postgres/data:/var/lib/postgresql/data \
//将docker镜像内部文件夹/var/lib/postgresql/data映射绑定到服务器文件夹/data/docker/postgres/data/
 -v /data/docker/postgres/buckup:/var/lib/postgresql/buckup \
  -v /data/docker/postgres/postgresql.conf:/etc/postgresql/postgresql.conf \
  //将docker镜像内部文件/etc/postgresql/postgresql.conf映射绑定到服务器文件夹/data/docker/postgres/postgresql.conf
   -d postgres:12 \
    -c 'config_file=/etc/postgresql/postgresql.conf'
    //指定 postgres使用的配置文件为 /etc/postgresql/postgresql.conf 即上文映射的服务器文件/data/docker/postgres10/postgresql.conf

在这里插入图片描述

1
2
3
4
5
6
7
8
docker run --name postgres \
-e POSTGRES_PASSWORD=123456 \
-p 5432:5432 \
-v /data/docker/postgres/data:/var/lib/postgresql/data \
-v /data/docker/postgres/buckup:/var/lib/postgresql/buckup \
-v /data/docker/postgres/postgresql.conf:/etc/postgresql/postgresql.conf \
-d postgres:12 \
-c 'config_file=/etc/postgresql/postgresql.conf'

执行命令。在/data/docker/postgres 下会生成 buckup 和 data 文件夹

查看 docker ps
在这里插入图片描述
说明安装成功。

进入数据库
$: docker exec -it postgres bash (这个postgres 你上面命名的镜像名字)
//切换用户
$: su postgres
//进入数据库指定端口为 5432
$: psql -p 5432

重新加载部分配置方式(增加了新配置)

$postgres: SELECT pg_reload_conf();

查看所有的数据库:\l
会显示数据库就成功了 可以用了
查看当前时区设置:SELECT current_setting(‘timezone’) AS timezone;
在这里插入图片描述

本地连接数据库 我用的是 Navicat Premium 12(官网上直接下载,傻瓜式安装就好)

1.第一种方式 关闭服务器上的防火墙 就可以直接连接
//查看防火墙运行状态
$:firewall-cmd –state
关闭防火墙:
systemctl stop firewalld.service #停止 firewall
systemctl disable firewalld.service #禁止 firewall 开机启动
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
在这里插入图片描述
连接方式
在这里插入图片描述

第二种 用 ssh 通道方式,防火墙就不要开启
这里的密码是你的数据库密码
这里的密码是你的数据库密码 > 这里的密码是服务器密码
这里的密码是服务器密码

删除 docker

  1. 查询安装过的包
    $:yum list installed | grep docker
    在这里插入图片描述
  1. 删除安装的软件包
    $:yum -y remove docker-ce.x86_64
    $:yum -y remove docker-ce-cli.x86_64
  1. 删除镜像/容器等
    $:rm -rf /var/lib/docker/
  1. 输入 docker 或 docker –version 验证是否卸载
    $:docker --version
    -bash: /usr/bin/docker: No such file or directory

数据库备份文档:

如何在 PostgreSQL 中实现增量备份
Postgresql 备份与数据恢复
PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
PostgreSQL 10.1 手册
PostgreSQL 如何永久更改时区为 UTC

文章目录