群晖DS218+部署PostgreSQL(docker)
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
起因是懒
- 最近在开发中要用到PostgreSQL数据库,不想装在MacBook上(也不想装docker),于是安装在另一台电脑上,用的时候打开电脑运行数据库,用完再关闭电脑,总觉得这些操作挺麻烦(您想骂我懒么?您骂得对.....)
群晖解决烦恼
家里有台群晖DS218+,从不关机,为全家提供稳定的图片和视频服务,之前已在上面部署了maven私服、MySQL,运行得很稳定,今天就把PostgreSQL也部署在上面吧,今后可以随时想用就用,反正两年了从未关机,也没啥毛病,算得上懒人救星了。
下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:

下图是网购的内存条,现在一共2+8=10G内存,内存充足才是敢折腾的底气:

如果您想在群晖的docker上安装其他镜像服务,本篇也可以作为参考,镜像、文件夹、端口、参数略有不同而已,基本步骤是一样的
总的来说,今天的操作需要五步
- 取得docker镜像地址
- 准备文件夹,用于映射容器内部文件夹
- 创建容器前的信息汇总
- 在群晖docker上创建容器
- 验证
- 接下来开始操作吧
取得docker镜像地址
在群晖的docker上现在镜像,需要提供docker镜像地址,本段就是获取镜像的地址的过程
在以下页面搜索镜像,红框内就是我输入的搜索内容postgres

- 在搜索结果中找到自己想要的,点击下图红框中的内容,即可进入镜像详情页

- 详情页的地址就是我们需要的,将其复制下来,如下图红框,内容是https://registry.hub.docker.com/_/postgres

- 至此,地址取到了,接下来可以登录群晖桌面,开始创建容器的操作
在群晖docker下载镜像
点击下图红框中的图标,进入主菜单

点击下图红框中的Docker

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

- 在下图红框位置输入刚才复制的镜像地址https://registry.hub.docker.com/_/postgres,然后点击右下角的新增按钮

- 稍等片刻,会弹出下拉菜单,列出所有可选标签,您选择适合自己的那个

- 此刻,群晖会自动下载您选择的镜像

- 静候它下载完毕
准备文件夹,用于映射容器内部文件夹
docker容器运行时产生的文件,在删除容器时也会随之被删除,有时我们希望能够将其保留下来,这就需要将容器的指定目录映射到宿主机的指定目录,如此就算容器销毁删除了,其数据也会在宿主机上保留
点击下图红框中的图标,进入主菜单

点击下图红框中的File Station

- 找一个合适的位置新建文件夹,我这里在docker目录下新建了名为postgres的文件夹

- 如此,群晖的/docker/postgres目录就会被用来保存postgresql容器生成的文件了
创建容器前的信息汇总
- 创建容器前,先汇总一下即将配置的参数信息,稍后都会用到,以我这边的postgresql为例,稍后要做以下配置
- 文件夹映射:容器的/var/lib/postgresql/data对应宿主机的/docker/postgres
- 端口映射:容器的5432对应宿主机的5432
- 环境变量(数据库账号):POSTGRES_USER=quarkus
- 环境变量(数据库密码):POSTGRES_PASSWORD=123456
- 环境变量(数据库名):POSTGRES_DB=quarkus_test
- 上述信息要提前准备好,稍后创建容器是需要逐个配置
创建容器
- 按照下图操作,进入创建执行镜像的容器的页面

- 在弹出的窗口点击下图红框中的高级设置

- 先配置文件夹映射

- 然后是端口映射,自己指定,还可以不填,让docker服务自动分配

- 最后把三个环境变量填好,再点击右下角的应用按钮

- 回到了刚才的页面,点击下一步

- 在摘要页面确认所有信息准确无误,点击右下角的完成即可创建容器

- 在容器页面中可以看到运行情况

- 再去File Station查看/docker/postgres文件夹,发现里面新增了大量内容,这都是容器的文件

- 注意,如果此时提示容器创建失败,请检查映射目录的权限,要设置为允许写入,如下图

- 至此,容器创建成功,接下来验证数据库是否正常
验证
我这边群晖的IP地址是192.168.50.43,容器的5432端口映射到宿主机的15432端口,所以数据库的连接地址是192.168.50.43:15432
我用的是IDEA上自带的数据库工具,您可以选择自己趁手的工具做连接测试,如下图,连接成功,证明数据库在群晖上工作正常

- 至此,群晖上下载镜像运行容器的操作就全部完成了,如果您想在群晖的docker上安装其他镜像服务,本篇也可以作为参考,镜像、文件夹、端口、参数略有不同而已,基本步骤是一样的
欢迎关注博客园:程序员欣宸
群晖DS218+部署PostgreSQL(docker)的更多相关文章
- 群晖DS218+部署GitLab
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 群晖DS218+部署mysql
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 群晖DS218+部署kafka
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 群晖DS218+部署Harbor(1.10.3)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 群晖DS218+做maven私服(nexus3)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- K8S使用群晖DS218+的NFS
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 群晖NAS百度云Docker客户端下载目录没有权限的问题解决
针对这篇文章:https://zhuanlan.zhihu.com/p/42267779的问题,需要ssh进去群晖,然后把目录设置成777权限.命令如下: sudo chmod -R 777 /vol ...
- 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器
常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...
- 群晖-使用docker套件部署Prometheus+Grafana
Docker 部署 Prometheus 说明: 先在群辉管理界面安装好docker套件,修改一下镜像源(更快一点) 所需容器如下 Prometheus Server(普罗米修斯监控主服务器 ) No ...
- 使用Docker构建持续集成与自动部署的Docker集群
为什么使用Docker " 从我个人使用的角度讲的话 部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...
随机推荐
- Python忽略NoData计算多张遥感影像的像元平均值:whitebox库
本文介绍基于Python中whitebox模块,对大量长时间序列栅格遥感影像的每一个像元进行忽略NoData值的多时序平均值求取. 在文章Python ArcPy批量计算多时相遥感影像的各像元 ...
- springboot 自动装配的原理
自动装配原理 问题就是为什么我们直接导入依赖就可以使用了,甚至不用配置web.xml,tomcat等,springboot内部是如何实现的? 主启动类上的注解@SpringBootApplicatio ...
- cookie和session以及token
cookie和seesion以及token 技术都基于状态保持, cookie: 有服务器生成, 以 k:v 形式保持在浏览器端,下次请求服务器,附带cookie信息:存在恶意修改可能:可以对co ...
- Vagrant 学习笔记:搭建 K8s 集群
Vagrant学习笔记:搭建K8s集群 通常情况下,我们在使用VMware.VirtualBox这一类虚拟机软件创建虚拟开发环境时,往往需要经历寻找并下载操作系统的安装镜像文件,然后根据该镜像文件启动 ...
- Weblogic反序列化(CVE-2023-21839)漏洞复现
前言 序列化(Serialization):将对象的状态信息转换为可以存储或传输的形式的过程,一般将对象转换为字节流.序列化时,对象的当前状态被写入到临时或持久性存储区(文件.内存.数据库等). 反序 ...
- Airtest图像识别测试工具原理解读&最佳实践
1 Airtest简介 Airtest是一个跨平台的.基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows.Android和iOS.Airtest框架基于一种图形脚本语言Si ...
- Linux多线程(8.3 线程同步与互斥)
3. 线程的同步与互斥 为什么需要同步与互斥 一个进程运行时,数据存储在内存中.如果一个数据要进行运算,必须先将数据拷贝到寄存器中.比如要对栈上的一个int i进行"++"操作 ...
- #mac安装Homebrew报错问题:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
我们在打开https://brew.sh/index_zh-cn官网的时候都会给你下面这段代码,粘贴复制就可以安装: /bin/bash -c "$(curl -fsSL https://r ...
- ResNet:RevolutionizingDeepLearningforImageRecognition
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成与测试 3.4 优化与改进 4. 示例与应用 ResNet: Re ...
- springboot下拦截器的单例模式写法
最近在学习springboot的时候,要把用户登录的做一个拦截,又想到了不采用new对象方式,于是想到使用单例模式来进行构造拦截器对象,所以下面看代码. (不知道这个是不是要写成单例模式,也许是我最近 ...