docker部署访问postgres数据库的实现方法

目录
  • 部署与访问
  • 启用日志
  • 如果需要修改pg配置
  • 重启pg
  • 代码&外部连接时注意(温馨提示)

部署与访问

宿主机创建postgres用户:

adduser postgres

拉取镜像,此处以12.1版本为例:

docker pull postgres:12.1

创建所用的卷

docker volume create pgdata_test_env

启动(密码为123456):

docker run --user=0  -p 45565:5432 -d --name pg_test --restart always \
-v pgdata_test_env:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=123456  \
postgres:12.1

访问pg,进入容器(注意需要用postgres 用户):

docker exec -ti -u postgres pg_test bash
psql

启用日志

  • show log_destination;   查看日志记录类型,未开启时显示off
  • show log_directory;     查看日志路径

启用日志:alter system set logging_collector='on';   重启pg容器。

如果需要修改pg配置

首先查看docker root地址:

执行docker info,找Docker Root
Docker Root Dir: /opt/docker

进入卷内部:

cd /opt/docker/volumes/pgdata_test_env/_data
postgresql.conf就是配置文件,修改完后重启pg即可

重启pg

重启方式有两种:

方法1:docker restart pg_test

方法2:进入容器,
docker exec -ti -u postgres pg_test bash
cd /var/lib/postgresql/data
pg_ctl restart
即可重启成功

代码&外部连接时注意(温馨提示)

访问时两种形式皆可:
1,使用容器Ip和映射的容器内端口
2,使用宿主机ip和映射的宿主机端口
如果使用第二种时如果出现以下两种类似的连不上pg的报错:
read: connection reset by peer     或
i/o timeout
但进入容器使用pg正常,这就需要排查网络层面的问题,如端口是否开放,如果你有这方面的未决问题可以提出来,我帮你解决哦

到此这篇关于docker部署访问postgres数据库的实现方法的文章就介绍到这了,更多相关docker部署访问postgres内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker中运行PostgreSQL并推荐几款连接工具

    1 前言 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符.聚集函数.索引

  • Docker启动PostgreSQL时创建多个数据库的解决方案

    1 前言 在文章<Docker启动PostgreSQL并推荐几款连接工具>中我们介绍如何通过Docker来启动PostgreSQL,但只有一个数据库,如果想要创建多个数据库在同一个Docker容器上怎么办呢? 2 两种方案 一种方案是把shell/sql脚本放入/docker-entrypoint-initdb.d/目录中,让容器启动的时候自动执行创建:另一种是通过shell脚本指定创建,本质是一样的.这里只介绍第一种. 把shell脚本或sql脚本放入指定目录,就会自动执行,两种脚本都可以.

  • Docker环境下升级PostgreSQL的步骤方法详解

    前段时间接到了要升级数据库的需求,在公司大佬的指导下搞定了升级的方案,在此记录一下. 查阅PostgreSQL 官方文档 可以得知,官方提供了两种方式对数据库进行升级--pg_dumpall与pg_upgrade. pg_dumpall是将数据库转储成一个脚本文件,然后在新版数据库中可以直接导入.这种方式操作简单,跟着官方文档就能轻松操作,但是明显只适用于数据量较少的情况,在我的测试环境里,导入一个2g的数据库用了将近10分钟. 所以我这里选用的是 pg_upgrade,这种方式是直接将数据文件

  • docker环境下数据库的备份(postgresql, mysql) 实例代码

    posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA} # pg-db 是数据库的 docker 名称 2.恢复 docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U

  • 关于Docker部署postgresql数据库的问题

    环境 Centos-7 Postgresql-10 docker-19 yum加载Postgresql yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y 查看Postgresql版本 yum list | grep postgresql 下载Postgresql镜像 #拉取得是版本10 docker pull post

  • docker安装并持久化postgresql数据库的操作步骤

    安装docker步骤略过 1.拉取postgresql镜像 docker pull postgresql 2.创建本地卷,数据卷可以在容器之间共享和重用,默认会一直存在,即使容器被删除(docker volume inspect pgdata可查看数据卷的本地位置) docker volume create pgdata 3.启动容器 docker run --name postgres2 -e POSTGRES_PASSWORD=password -p 5432:5432 -v pgdata:

  • 本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1)

    介绍 项目最近要升级Posgres数据库, 从9.6升级到12+.为了做一些migration测试,我本地要安装几个版本的Postgres,最方便的就是 用Docker安装了,没有版本冲突的问题,好管理,方便删除. 另外建议使用docker-compose,或者stack,简单说就是可以data存在本地,这样每次重新启动,数据不会丢,可以重复使用.如果 是做integration testing,则可以每次启动一个新的DB. 下面docker-compose文件里面还有pgAdmin,这样使用P

  • 用docker运行postgreSQL的方法步骤

    1. 安装docker: 参考网址: Docker入门安装教程(小白篇) linux上安装Docker(非常简单的安装方法) 2. 拉取postgreSQL的docker镜像文件:docker pull postgres:12.1 3. 创建 docker volume,名字为"dv_pgdata"(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):docker volume create dv_pgdata 4. 启动容器,用-v来指定把postgres的数据目录映射

  • docker部署访问postgres数据库的实现方法

    目录 部署与访问 启用日志 如果需要修改pg配置 重启pg 代码&外部连接时注意(温馨提示) 部署与访问 宿主机创建postgres用户: adduser postgres 拉取镜像,此处以12.1版本为例: docker pull postgres:12.1 创建所用的卷 docker volume create pgdata_test_env 启动(密码为123456): docker run --user=0 -p 45565:5432 -d --name pg_test --restar

  • 使用Docker部署openGauss国产数据库的操作方法

    目录 一.openGauss介绍 1.openGauss简介 2.openGauss产品定位 3.支持的架构和操作系统版本 二.检查宿主机环境 1.检查系统版本 2.检查Docker状态 三.下载openGauss镜像 1.进入docker官方镜像仓库 2.openGauss镜像介绍 3.下载openGauss镜像 四.创建openGauss单节点容器 1.创建数据目录 2.创建openGauss容器 3.查看openGauss容器状态 4.连接测试openGauss 5.外部远程连接 五.创建

  • python访问mysql数据库的实现方法(2则示例)

    本文实例讲述了python访问mysql数据库的实现方法.分享给大家供大家参考,具体如下: 首先安装与Python版本匹配的MySQLdb 示例一 import MySQLdb conn=MySQLdb.connect(user='root',passwd='123',db='example') cur=conn.cursor() cur.execute("select id,lastname,firstname, date_format(dob,'%Y-%m-%d %H-%i-%s'),pho

  • centos6使用docker部署redis主从数据库操作示例

    本文实例讲述了centos6使用docker部署redis主从数据库操作.分享给大家供大家参考,具体如下: 目录结构: /redis /Dockerfile /Readme /redis-3.2.8.tar.gz /start.sh Dockerfile: FROM centos MAINTAINER qiongtao.li hnatao@126.com ADD ./redis-3.2.8.tar.gz /opt ADD ./start.sh /opt/start_redis.sh RUN ec

  • 使用docker部署django技术栈项目的方法步骤

    随着Docker的普及成熟,已经逐渐成为部署项目的首选,今天来和大家分享下如何使用docker部署django技术栈项目. 我们这里说的Django技术栈为:python3.6.Django2.2.redis.mysql.celery.gunicorn和nginx.在实际的生产项目中,这些组件分布在集群的不同机器,如Nginx.redis和Mysql可能会有单独的团队或部门负责.涉及的部署架构和容器的编排会更为复杂,本文暂不去深究.本文主要介绍,如何使用 docker-compose 来编排这些

  • Docker容器访问宿主机网络的方法

    最近部署一套系统,使用nginx作反向代理,其中nginx是使用docker方式运行: $ docker run -d --name nginx $PWD:/etc/nginx -p 80:80 -p 443:443 nginx:1.15 需要代理的API服务运行在宿主机的 1234 端口, nginx.conf 相关配置如下: server { ... location /api { proxy_pass http://localhost:1234 } ... } 结果访问的时候发现老是报 5

  • docker部署rabbitmq集群的实现方法

    拉取rabbitmq management镜像 docker pull rabbitmq:3.7-rc-management 若不使用Rabbitmq的management功能,可以拉取镜像:rabbitmq:3.7-rc 参考: https://hub.docker.com/_/rabbitmq/ 创建网络 创建rabbitmq私有网络 # docker network create rabbitmqnet # docker network ls NETWORK ID NAME DRIVER

  • 使用Docker部署Angular项目的方法步骤

    Docker 部署 Angular 项目有两种方法,一种是服务端渲染,这个官方文档已有说明,另一种就是使用 node 镜像编译后放入 web 服务器.由于在 node 环境,所以使用 express 最为便捷了. 创建 server.js const express = require('express'); const app = express(); const config = { root: __dirname + '/dist', port: process.env.PORT || 4

  • Docker部署安装Redash中文版的方法详解

    1安装说明 相比Linux环境本地安装而言,Docker安装方式更为简便,Docker脚本化安装过程会自动获取Redis.postgres.Python3.7镜像,构造Redash最新的后台server.worker.schedule镜像.前端npm依赖包安装和前端最新代码打包是通过卷映射方式挂载到server容器,因此这些工作需要人工一次执行:另外构建初始数据库表结构也需要人工一次执行.这些动作执行完毕,启动Docker容器就可以访问了.由于安装过程需要访问国外服务器,极难一次安装成功,需要反

  • Docker 部署 Mysql8.0的方法示例

    1. 参照官网,安装docker 2.拉取mysql镜像 (默认拉取最新的镜像)8.0.11 docker pull mysql 3.在宿主机创建持久化 mysql data 及mysql.cnf mkdir /usr/local/mysqlData/test/cnf mkdir /usr/local/mysqlData/test/data vi /usr/loal/mysqlData/test/cnf/mysql.cnf 设置本地文件共享: Docker -> Preferences... -

随机推荐