当前位置: 首页 > news >正文

Docker环境安装Postgresql数据库Posrgresql 15.6

宿主机是ubuntu 22.04版本

ubuntu宿主机上安装docker,参见官方文档https://docs.docker.com/engine/install/ubuntu/, docker-ce是社区版 docker-ee是企业版
1、检查Docker是否安装

root@ODS1SPGOFSDEV:~# docker
Command 'docker' not found, but can be installed with:
snap install docker         # version 24.0.5, or
apt  install docker.io      # version 24.0.5-0ubuntu1~22.04.1
apt  install podman-docker  # version 3.4.4+ds1-1ubuntu1.22.04.2
See 'snap info docker' for additional versions.
root@ODS1SPGOFSDEV:~#

2、查看Docker各个版本,也可以参见https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/

root@ODS1SPGOFSDEV:~# snap info docker
...
channels:latest/stable:    24.0.5   2024-02-01 (2915) 136MB -latest/candidate: 24.0.5   2024-02-01 (2915) 136MB -latest/beta:      24.0.5   2023-10-30 (2915) 136MB -latest/edge:      24.0.5   2024-01-26 (2920) 136MB -core18/stable:    20.10.17 2023-03-13 (2746) 146MB -core18/candidate: ↑core18/beta:      ↑core18/edge:      ↑
root@ODS1SPGOFSDEV:~#

3、设置 Docker的apt仓库

# Add Docker's official GPG key:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

4、安装docker20版本

# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'
# Select the desired version and install:
VERSION_STRING=5:20.10.24~3-0~ubuntu-jammy
apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
#Verify that the Docker Engine installation is successful by running the hello-world image.
docker run hello-world
docker rmi -f hello-world
#Verify that the Docker is enable to startup while OS Startup
systemctl is-enabled docker

Docker环境安装postgresql 15.6
步骤1:下载postgresql 15.6的docker镜像,首先看有没有postgresql的docker镜像,再看有没有postgresql 15.6的docker镜像,可以到https://hub.docker.com/_/postgres/tags页面查找

root@ODS1SPGOFSDEV:~# docker search postgresql --no-trunc --filter is-official=true
root@ODS1SPGOFSDEV:~# docker pull postgres:15.6

步骤2:查看postgresql 15.6的docker镜像是否下载到了本机

root@ODS1SPGOFSDEV:~# docker images

步骤3:查看postgresql 15.6的docker镜像信息,比如端口port和变量PGDATA的信息,比如查到"ExposedPorts": {“5432/tcp”: {}}和"PGDATA=/var/lib/postgresql/data"

root@ODS1SPGOFSDEV:~# docker inspect postgres:15.6

步骤4:使用postgresql 15.6的docker镜像运行docker,一些参数可能需要修改到本机的信息比如变量PGDATA的信息,运行命令可以参考https://hub.docker.com/_/postgres

root@ODS1SPGOFSDEV:~# docker run -d --name postgresql15.6 --restart=always -e POSTGRES_PASSWORD=Dai2013! -e PGDATA=/pgdata -p 5432:5432 -v /var/lib/docker/volumes/pg_wal/_data:/pgdata postgres:15.6

**备注1:**必须要加-p 5432:5432,前一个5432表示宿主机(本机)的端口,后一个5432表示容器内部的端口,一定要把容器内部的端口映射到宿主机上,否则只是容器内部通信,我们连宿主机就无法连上
不映射的情况下,看到结果如下。当然如果如果把-p 5432:5432改成的话–network=host,这样也行,不过就是宿主机和容器公共网络,也就不再需要做端口映射了

root@ODS1SPGOFSDEV:/# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED       STATUS          PORTS      NAMES
6b1285cdf987   postgres:15.6   "docker-entrypoint.s…"   2 hours ago   Up 40 minutes   5432/tcp   postgresql15.6

映射的情况下,看到结果如下

root@ODS1SPGOFSDEV:/# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED              STATUS              PORTS                                       NAMES
d3842f39b5f9   postgres:15.6   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   postgresql15.6

**备注2:**加上-v 来绑定宿主机和容器内部的目录,这个/pgdata就是自定义的docker里面的postgresql的PGDATA环境变量值,而没有使用docker里面默认的PGDATA变量值PGDATA=/var/lib/postgresql/data,这个/var/lib/docker/volumes/pg_wal/_data就是我宿主机(本机)挂载的卷,这样我在宿主机(本机)的目录/var/lib/docker/volumes/pg_wal/_data就是docker容器里面的目录/pgdata1,宿主机没有/pgdata1这个目录,容器里面也没有/var/lib/docker/volumes/pg_wal/_data这个目录,详情见下面的实验结果
如果宿主机目录是/pgdata/data,docker image中PGDATA变量是/var/lib/postgresql/data,我们只是想把宿主机目录/pgdata/data绑定到docker目录/var/lib/postgresql/data而不想更换docker image中PGDATA变量值/var/lib/postgresql/data的话,那么直接执行如下就行

root@ODS1SPGOFSDEV:~# docker run -d --name postgresql15.6 --restart=always -e POSTGRES_PASSWORD=Dai2013! -p 5432:5432 -v /pgdata/data:/var/lib/postgresql/data postgres:15.6

**备注3:**发现这个docker的postgresql的pg_hba.conf文件最后面有一行host all all all scram-sha-256这条信息,所以不再需要额外加host all all 0.0.0.0/0 md5这种信息,外部的程序还是可以连接postgresql不会报错connection failed: FATAL: no pg_hba.conf entry for host “IP Address”, user “XX”, database “postgres”, SSL off。

步骤5:查看刚刚运行的docker的日志
root@ODS1SPGOFSDEV:~# docker logs postgresql15.6
docker logs 后面可以是docker名称postgresql15.6(docker run -d --name postgresql15.6 …),也可以是docker id,但是不能是docker image名称postgres:15.6

docker run -v /var/lib/docker/volumes/pg_wal/_data:/pgdata1时,/var/lib/docker/volumes/pg_wal/_data表示宿主机的目录,/pgdata1表示容器里面的目录

root@ODS1SPGOFSDEV:/var/lib/docker/volumes/pg_wal/_data# docker exec -it 6b1285cdf987 /bin/bash
root@6b1285cdf987:/# df -h
Filesystem                          Size  Used Avail Use% Mounted on
overlay                              18G   13G  4.1G  76% /
tmpfs                                64M     0   64M   0% /dev
shm                                  64M  1.1M   63M   2% /dev/shm
/dev/mapper/pg_wal_vg-pg_wal         10G  145M  9.9G   2% /pgdata1
/dev/mapper/pg_syslog_vg-pg_syslog  5.0G   68M  5.0G   2% /etc/hosts
tmpfs                               7.8G     0  7.8G   0% /proc/acpi
tmpfs                               7.8G     0  7.8G   0% /proc/scsi
tmpfs                               7.8G     0  7.8G   0% /sys/firmware
root@6b1285cdf987:/#
root@6b1285cdf987:/# ls /pgdata1
base    pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.opts
global  pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf       postmaster.pid
root@6b1285cdf987:/#
root@6b1285cdf987:/# ls /var/lib/docker/volumes/pg_wal/_data
ls: cannot access '/var/lib/docker/volumes/pg_wal/_data': No such file or directory
root@6b1285cdf987:/#
root@6b1285cdf987:/# exit
exit
root@ODS1SPGOFSDEV:~# ll /pgdata1
ls: cannot access '/pgdata1': No such file or directory
root@ODS1SPGOFSDEV:~#
root@ODS1SPGOFSDEV:~# df -h
Filesystem                            Size  Used Avail Use% Mounted on
tmpfs                                 1.6G  1.7M  1.6G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv      18G   13G  4.1G  76% /
tmpfs                                 7.8G     0  7.8G   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
/dev/sda2                             2.0G  374M  1.5G  21% /boot
/dev/mapper/pg_syslog_vg-pg_syslog    5.0G   68M  5.0G   2% /var/lib/docker/containers
tmpfs                                 1.6G     0  1.6G   0% /run/user/0
/dev/mapper/pg_wal_vg-pg_wal           10G  143M  9.9G   2% /var/lib/docker/volumes/pg_wal/_data
root@ODS1SPGOFSDEV:~#
root@ODS1SPGOFSDEV:~# ls /var/lib/docker/volumes/pg_wal/_data
base    pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.opts
global  pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf       postmaster.pid

docker run --network=host是,PORTS一列没有信息,且docker exec -it dockerid /bin/bash进入容器时,不再像root@d3842f39b5f9这样显示容器名,而是直接变成了root@ODS1SPGOFSDEV:/#主机名,只不过~变成了/

root@ODS1SPGOFSDEV:~# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED             STATUS             PORTS     NAMES
c1d3f8f35e27   postgres:15.6   "docker-entrypoint.s…"   About an hour ago   Up About an hour             postgresql15.6
root@ODS1SPGOFSDEV:~#
root@ODS1SPGOFSDEV:~# docker exec -it c1d3f8f35e27 /bin/bash
root@ODS1SPGOFSDEV:/#

相关文章:

Docker环境安装Postgresql数据库Posrgresql 15.6

宿主机是ubuntu 22.04版本 ubuntu宿主机上安装docker,参见官方文档https://docs.docker.com/engine/install/ubuntu/, docker-ce是社区版 docker-ee是企业版 1、检查Docker是否安装 rootODS1SPGOFSDEV:~# docker Command docker not found, but can be installed …...

当代软件专业大学生与青年在新质生产力背景下的发展探究

在新质生产力的浪潮中,信息技术以前所未有的速度革新,为软件专业的大学生和青年带来了丰富的机遇,同时也伴随着一系列的挑战。他们如何把握时代的脉搏,实现个人的发展,成为了值得深入探讨的话题。 一、新质生产力背景下的机遇 随着新质生产力的不断发展,信息技术在各个领…...

MATLAB——知识点备忘

最近在攻略ADC建模相关方面,由好多零碎的知识点,这里写个备忘录。 Matlab 判断一个数是否为整数 1. isinteger 函数 MATLAB中,可以使用 isinteger 函数来判断一个数是否为整数,例如:要判断x是否为整数可以采用以下代…...

C++入门(以c为基础)——学习笔记2

1.引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间。在语法层面,我们认为它和它引用的变量共用同一块内存空间。 可以取多个别名,也可以给别名取别名。 b/c/d本质都是别名&#…...

设计模式-单例模式(懒汉式)

1. 概念 保证一个类只有一个实例并为该实例提供一个全局唯一的访问节点 2. 懒汉式-方式一 2.1 代码示例(方式一) 示例 public class Singleton03 {/*** 构造器私有化*/private Singleton03() {}/*** 成员变量*/private static Singleton03 INSTANCE;…...

算法| ss 回溯

39.组合总数46.全排列—478.子集79.单词搜索—1连续差相同的数字—1 39.组合总数 /*** param {number[]} candidates* param {number} target* return {number[][]}*/ // 思路 // dfs传参,传idx, 剩余target // dfs返回: 0 收集&#xff0c…...

基于R语言绘制-散点小提琴图

原文链接:R语言绘图 | 散点小提琴图 本期教程 写在前面 本期的图形来自发表在Nature期刊中的文章,这样的基础图形在日常分析中使用频率较高。 获得本期教程数据及代码,后台回复关键词:20240405 绘图 设置路径 setwd("You…...

Arduino开发 esp32cam+opencv人脸识别距离+语音提醒

效果图 低于20厘米语音提醒字体变红 Arduino代码 可直接复制使用&#xff08;修改自己的WIFI) #include <esp32cam.h> #include <WebServer.h> #include <WiFi.h> // 设置要连接的WiFi名称和密码 const char* WIFI_SSID "gumou"; const char* …...

LeNet卷积神经网络

文章目录 简介conv2d网络层的结构 简介 它是最早发布的卷积神经网络之一 conv2d 这个卷积成的参数先进行介绍一下&#xff1a; self.conv1 nn.Conv2d(in_channels3, out_channels10, kernel_size3, stride1, padding1)先看一下in_channels 输入的通道数&#xff0c;out_cha…...

Python常用算法思想--回溯算法思想详解【附源码】

通过回溯算法解决“组合”问题、“排序”问题、“搜索”之八皇后问题、“子集和”之0-1背包问题、字符串匹配等六个经典案例进行介绍: 一、解决“组合”问题 从给定的一组元素中找到所有可能的组合,这段代码中的 backtrack_combinations 函数使用了回溯思想,调用 backtrack…...

Day5-Hive的结构和优化、数据文件存储格式

Hive 窗口函数 案例 需求&#xff1a;连续三天登陆的用户数据 步骤&#xff1a; -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…...

01 计算机网络发展与分类

计算机网络&#xff1a;计算机技术与通信技术的结合。 阶段一&#xff1a;早期网络&#xff1a;ARPAnet。 阶段二&#xff1a;厂商独立发展阶段 阶段三&#xff1a;标准化阶段&#xff1a;ISO,TCP/IP 计算机网络分类 计算机网络分类1&#xff1a;通信子网和资源子网 通信子…...

ubuntu安装sublime3并设置中文

安装Sublime Text 3 在Ubuntu上安装Sublime Text 3可以通过以下步骤进行&#xff1a; 打开终端。 导入Sublime Text 3的GPG密钥&#xff1a; wget -qO- https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - 添加Sublime Text 3的存储库&#xff1a; …...

python调用阿里云短信配置

1. 新增资质和签名 # 访问地址&#xff1a; https://dysms.console.aliyun.com/domestic/text/qualification2. 静静等待几十分钟~~~ 3. 通过sdk去调用&#xff0c;查看有没有python的sdk https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?完整代码 # -*- cod…...

MySQL 8.0.13安装配置教程

写个博客记录一下&#xff0c;省得下次换设备换系统还要到处翻教程&#xff0c;直接匹配自己常用的8.0.13版本 1.MySQL包解压到某个路径 2.将bin的路径加到系统环境变量Path下 3.在安装根目录下新建my.ini配置文件&#xff0c;并用编辑器写入如下数据 [mysqld] [client] port…...

【idea快捷键】idea开发java过程中常用的快捷键

含义win快捷键mac快捷键复制当前行或选定的代码块Ctrl DCommand D通过类名快速查找类Ctrl NCommand N通过文件名快速查找文件Ctrl Shift NCommand Shift N通过符号名称快速查找符号&#xff08;类、方法等&#xff09;Ctrl Alt Shift NCommand Shift O跳转到声明C…...

2024年腾讯云GPU云服务器配置价格表(内存/系统盘/地域)

腾讯云GPU服务器是提供GPU算力的弹性计算服务&#xff0c;腾讯云GPU服务器具有超强的并行计算能力&#xff0c;可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景&#xff0c;腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…...

重构数据访问层-优化数据访问的开发

重新整理了一下过去开发的框架&#xff0c;在准备开发新项目时候&#xff0c;重新整理了一下思路&#xff0c;感觉数据访问层还是很鸡肋。过去几年中&#xff0c;急于完成项目开发和交付&#xff0c;框架都是迭代过来的&#xff0c;虽然满足了开发需求&#xff0c;但是&#xf…...

云计算概述报告

以下是一篇论述类文章 文章目录 I. 云计算介绍&#xff08;1&#xff09;云计算基本概念&#xff08;2&#xff09;云计算基本特征 II. 云计算发展历程&#xff08;1&#xff09;云计算的起源&#xff08;2&#xff09;云计算的发展阶段 III. 云计算特点&#xff08;1&#xff…...

C++:线程库的使用

文章目录 Windows和Linux平台的线程线程构造函数模板参数包 最近发现C11的线程库还没有进行总结&#xff0c;因此本篇对于C11当中新增的线程库的一些基本用法进行总结 Windows和Linux平台的线程 在Linux平台下是存在一些原生的线程系统调用的&#xff0c;比如有pthread_creat…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...