群晖DS218+部署PostgreSQL(docker)

ds218,部署,postgresql,docker · 浏览次数 : 230

小编点评

## 欣宸原创数据库配置指南 **简介** 本文介绍了如何使用群晖部署PostgreSQL数据库的步骤,并附上镜像配置指南。 **安装数据库** 1. 获取PostgreSQL镜像地址: - 打开浏览器,访问`registry.hub.docker.com/search`页面。 - 输入搜索内容为`postgres`。 - 点击搜索按钮,即可获取到PostgreSQL镜像的地址。 2. 创建容器: - 启动群晖桌面。 - 点击“文件”>“新建”。 - 选择“容器”。 - 输入容器名称为`postgres`,镜像地址为获取到的地址,端口映射为`5432:15432`,用户名和密码等信息均可根据实际情况进行设置。 - 点击“创建”。 **配置数据库** 1. 启动容器,并进入容器界面。 2. 配置文件系统映射: - 找到容器的`/var/lib/postgresql/data`目录。 - 在本地创建一个名为`postgres`的文件夹。 - 在`data`目录下创建以下文件: - `postgresql.conf`:设置数据库参数,例如数据库名、用户名、密码等。 - `docker-compose.yml`:定义容器之间的依赖关系。 - 将`postgresql.conf`和`docker-compose.yml`文件分别添加到容器的`etc`和`data`目录下。 3. 验证数据库连接: - 在容器中运行以下命令: ``` psql -U postgres -d ``` - 输入用户名和密码,点击“登录”。 - 验证数据库是否正常连接到服务器。 **其他配置** 1. 可以将`docker-compose.yml`文件手动配置,例如设置容器数量、镜像版本等。 2. 建议参考博客文章或其他教程,设置其他参数和配置。

正文

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

起因是懒

  • 最近在开发中要用到PostgreSQL数据库,不想装在MacBook上(也不想装docker),于是安装在另一台电脑上,用的时候打开电脑运行数据库,用完再关闭电脑,总觉得这些操作挺麻烦(您想骂我懒么?您骂得对.....)

群晖解决烦恼

  • 家里有台群晖DS218+,从不关机,为全家提供稳定的图片和视频服务,之前已在上面部署了maven私服、MySQL,运行得很稳定,今天就把PostgreSQL也部署在上面吧,今后可以随时想用就用,反正两年了从未关机,也没啥毛病,算得上懒人救星了。

  • 下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:
    在这里插入图片描述

  • 下图是网购的内存条,现在一共2+8=10G内存,内存充足才是敢折腾的底气:
    在这里插入图片描述

  • 如果您想在群晖的docker上安装其他镜像服务,本篇也可以作为参考,镜像、文件夹、端口、参数略有不同而已,基本步骤是一样的

  • 总的来说,今天的操作需要五步

  1. 取得docker镜像地址
  2. 准备文件夹,用于映射容器内部文件夹
  3. 创建容器前的信息汇总
  4. 在群晖docker上创建容器
  5. 验证
  • 接下来开始操作吧

取得docker镜像地址

  • 在群晖的docker上现在镜像,需要提供docker镜像地址,本段就是获取镜像的地址的过程

  • 浏览器输入地址:https://registry.hub.docker.com/search

  • 在以下页面搜索镜像,红框内就是我输入的搜索内容postgres

image-20220503142832579
  • 在搜索结果中找到自己想要的,点击下图红框中的内容,即可进入镜像详情页
image-20220503143012267 image-20220503143242104
  • 至此,地址取到了,接下来可以登录群晖桌面,开始创建容器的操作

在群晖docker下载镜像

  • 点击下图红框中的图标,进入主菜单

    image-20220503144900726
  • 点击下图红框中的Docker

image-20220503145810179

选择映像 -> 新增 -> 从URL添加

image-20220503145946367 image-20220503150156651
  • 稍等片刻,会弹出下拉菜单,列出所有可选标签,您选择适合自己的那个
image-20220503150538727
  • 此刻,群晖会自动下载您选择的镜像
image-20220503150658998
  • 静候它下载完毕

准备文件夹,用于映射容器内部文件夹

  • docker容器运行时产生的文件,在删除容器时也会随之被删除,有时我们希望能够将其保留下来,这就需要将容器的指定目录映射到宿主机的指定目录,如此就算容器销毁删除了,其数据也会在宿主机上保留

  • 点击下图红框中的图标,进入主菜单

    image-20220503144900726
  • 点击下图红框中的File Station

image-20220503144732853
  • 找一个合适的位置新建文件夹,我这里在docker目录下新建了名为postgres的文件夹
image-20220503145102076
  • 如此,群晖的/docker/postgres目录就会被用来保存postgresql容器生成的文件了

创建容器前的信息汇总

  • 创建容器前,先汇总一下即将配置的参数信息,稍后都会用到,以我这边的postgresql为例,稍后要做以下配置
  1. 文件夹映射:容器的/var/lib/postgresql/data对应宿主机的/docker/postgres
  2. 端口映射:容器的5432对应宿主机的5432
  3. 环境变量(数据库账号):POSTGRES_USER=quarkus
  4. 环境变量(数据库密码):POSTGRES_PASSWORD=123456
  5. 环境变量(数据库名):POSTGRES_DB=quarkus_test
  • 上述信息要提前准备好,稍后创建容器是需要逐个配置

创建容器

  • 按照下图操作,进入创建执行镜像的容器的页面
image-20220503151129801
  • 在弹出的窗口点击下图红框中的高级设置
image-20220503152059403
  • 先配置文件夹映射
image-20220503152356956
  • 然后是端口映射,自己指定,还可以不填,让docker服务自动分配
image-20220503153131654
  • 最后把三个环境变量填好,再点击右下角的应用按钮
image-20220503152842355
  • 回到了刚才的页面,点击下一步
image-20220503152959428
  • 在摘要页面确认所有信息准确无误,点击右下角的完成即可创建容器
image-20220503153238088
  • 在容器页面中可以看到运行情况
image-20220503153529658
  • 再去File Station查看/docker/postgres文件夹,发现里面新增了大量内容,这都是容器的文件
image-20220503153727782
  • 注意,如果此时提示容器创建失败,请检查映射目录的权限,要设置为允许写入,如下图
image-20220503145508193
  • 至此,容器创建成功,接下来验证数据库是否正常

验证

  • 我这边群晖的IP地址是192.168.50.43,容器的5432端口映射到宿主机的15432端口,所以数据库的连接地址是192.168.50.43:15432

  • 我用的是IDEA上自带的数据库工具,您可以选择自己趁手的工具做连接测试,如下图,连接成功,证明数据库在群晖上工作正常

image-20220503154744222
  • 至此,群晖上下载镜像运行容器的操作就全部完成了,如果您想在群晖的docker上安装其他镜像服务,本篇也可以作为参考,镜像、文件夹、端口、参数略有不同而已,基本步骤是一样的

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

与群晖DS218+部署PostgreSQL(docker)相似的内容:

群晖DS218+部署PostgreSQL(docker)

家用NAS从不停机,可以顺便用来部署数据库服务,享受服务永远在线的感觉

签名介绍

群签名、环签名、盲签名、门限签名、代理签名和双重签名等 介绍 传统签名 RSA签名:基于大整数难分解问题 ElGamal签名:基于离散对数问题 Schnorr签名:基于有限域上的离散对数问题 DSA:基于离散对数问题 ECDSA签名:基于椭圆曲线上的离散对数问题 特殊签名的大致理解: 群签名:有一个

这么简单的问题都不会,那还面试什么!?

最近群里的讨论太猛了,硝烟味很重,有的群友直接开怼:这么简单的问题都不会,那你还面试什么呀?我一看这不就是很简单的数组和切片的区别嘛。

Dapper升级SqlSugar问题汇总

最近群里有个小伙伴把Dapper迁移SqlSugar几个不能解决的问题进行一个汇总,我正好写一篇文章来讲解一下 一、sql where in传参问题: SELECT * FROM users where id IN @ids 答: SqlSugar中应该是 SELECT * FROM users w

【动画进阶】极具创意的鼠标交互动画

最近,群里在讨论这么一个有趣的交互效果,来源于:vueflow.dev: 通过审查元素,发现原效果借助了 Canvas 实现。 思索了一番,觉得这个效果利用 CSS 配合部分 Javascript 代码完全也是可以做到的。 于是动手尝试了一番,最终完美的复刻了该效果: 过程中还是有非常多有意思的技巧

在System身份运行的.NET程序中以指定的用户身份启动可交互式进程

今天在技术群里,石头哥向大家提了个问题:"如何在一个以System身份运行的.NET程序(Windows Services)中,以其它活动的用户身份启动可交互式进程(桌面应用程序、控制台程序、等带有UI和交互式体验的程序)"? 我以前有过类似的需求,是在GitLab流水线中运行带有UI的自动化测试程

kettle从入门到精通 第六十七课 ETL之kettle 再谈kettle阻塞,阻塞多个分支的多个步骤

场景:ETL沟通交流群内有小伙伴反馈,如何多个分支处理完毕之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。 解决:使用步骤Blocking step进行阻塞处理即可。 1、 如下流程图中利用Blocking step步骤同时阻塞【模拟表输出1】和【模拟表输出2】两个步骤,只有当两个步

kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so easy

场景:ETL沟通交流群内有小伙伴反馈,如何在同步一批数据完成之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。 解决:使用步骤Blocking step进行阻塞处理即可。 1、下面的demo演示从表t1同步数据至表t2(t1表中有三条数据,t2为空表,两个表表结构相同),然后数据同步完

Redis数据存储和读写

今天工作群里,有小伙伴问了一个问题,从Redis获取的数据,一会是0,一会是OK。 这引起了我们对Redis数据存储和读写的疑问。 以下是整理的一些技术研究内容。 在 Redis 中,所有的数据存储都是基于字符串的。无论你插入的是 String、int 还是 DateTime 类型的数据,最终都会以

【源码】蚁群算法TSP问题可视化

ACO.Visualization项目 本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度、蚁群的运动过程等。项目相关的代码:https://github.com/anycad/ACO.Visualization 注:本项目基于.NET8开发,需要安装VS2022最新版本。 运行效