2019独角兽企业重金招聘Python工程师标准>>>

之前买了主机搭Nas服务器后,寻思着把一些服务也挂在服务器上。因为我并没有使用黑群辉,而是使用ArchLinux做服务器系统,所以什么都得自己来。

既然能自己部署一个私有云,数据还是存在自己硬盘比较好,第一个开刀的云笔记。不过开源的云笔记貌似只找到蚂蚁笔记(leanote),不过这开源都不走心,将就用吧。

找了些资料,感觉使用docker安装比较省力,于是就现学现用,并和镜像作者协商,做了一个leanote和数据库分离的的镜像。这样能多个容器共用相同的数据库,管理、持久化和迁移起来都方便。


修改时间:2018年8月2日10:57:14

如果你不想瞎折腾,可以用作者2018年8月1日更新的独立数据库版,具体怎么用我还没测试。

docker run -d --name test_lea \
-p 10086:9000 \
-v `pwd`/conf/:/data/leanote/conf \
axboy/leanote:2.6.1-nodb

需要的工具如下

  1. git
  2. docker

需要的镜像,一个是现成的,另一个是自己构建的

  1. mongo
  2. axboy/leanote

安装mongo并配置

获取镜像

$ docker pull mongo

运行

我自己习惯把docker的容器数据挂载到对应的/home/bubao/disk/data1/opt/容器名目录下。

$ mkdir /home/bubao/disk/data1/opt/mongo
$ cd /home/bubao/disk/data1/opt/mongo
$ docker run -p 27017:27017 --restart=always  --name mongo -v `pwd`:/data/db -d mongo

-p 27017:27017数据库使用默认的端口映射出来。容器命名为mongo。以后的所有数据库都用docker部署,并使用默认端口,宿主机上就不需要起数据库服务了。

--restart=always 总是重启,这样子重启宿主机后,自动启动这个容器。

--name mongo 起个名字,因为以后是多个服务器公共一个docker 容器数据库,就不分是什么有用的数据库容器了。

-v `pwd`:/data/db 这个是挂载容器内部的数据到宿主机的当前目录,这个很重要,因为但你重装系统后,只要不删除掉这个文件夹,数据还是能找到。

初始化leanote数据库

因为leanote需要一个初始化的mongo数据才能运行,当我们要分离出独立的数据库时,就需要将初始化数据先导入到独立的数据库容器中

下载leanote包,解压

$wget https://static.axboy.cn/leanote/leanote-linux-amd64-v2.6.1.bin.tar.gz -O leanote.tar.gz
$tar -xzf leanote.tar.gz -C .

将解压出来的数据拷贝到mongo数据库的容器的根目录,容器名为mongo

$docker cp leanote/mongodb_backup/leanote_install_data mongo:/

进入mongo数据库容器,把数据导入到数据库中

$docker exec -it mongo bash#mongorestore -h localhost -d leanote --drop --dir /leanote_install_data/
#exit

值得注意的是,这里加了个--drop参数,为的是防止旧数据和新数据冲突。

安装leanote并配置

下载镜像的Dockerfile文件安装,作者已经做出了无数据库版的镜像。

安装leanote

下载Dockerfile,修改配置并创建一个新的镜像

$git clone https://github.com/axboy/leanote.git
$cd leanote/no-db
$nano Dockerfile
  1. 从仓库拉取Dockerfile
  2. 进入leanote/no-db 目录下
  3. 我们需要修改写配置
FROM debian:jessie-slim
MAINTAINER zcw
ENV TZ=Asia/ShanghaiADD run.sh /root/
ADD leanote.tar.gz /root/
RUN set -ex; \# apt-get update; \# apt-get install -y --no-install-recommends wget tar; \rm -rf /var/lib/apt/lists/*; \# wget http://static.axboy.cn/leanote/leanote-linux-amd64-v2.6.1.bin.tar.gz -O /root/leanote.tar.gz; \# tar -xzf /root/leanote.tar.gz -C /root/ ;\chmod a+x /root/run.sh ;\chmod a+x /root/leanote/bin/run.sh ;\ln -snf /usr/share/zoneinfo/$TZ /etc/localtime ;\echo $TZ > /etc/timezoneEXPOSE 9000
CMD /bin/bash /root/run.sh

你没有看错,我在改作者的Dockerfile,做了以下几件事

  1. 把之前我们下载的leanote.tar.gz挪到Dockerfile所在的目录下,方便我们使用ADD命令添加并解压到镜像中。
  2. 屏蔽软件安装,因为我们手动把软件下载下来了,不需要wget,docker的ADD命令帮我们导入压缩包的时候自动给我们解压了,不需要tar。这样子做还有个好处是,节省了镜像构建的时间。
  3. 屏蔽wgettar使用的命令,因为我们没有安装,也不需要使用。

修改完毕后,按Ctrl+x保存,按y确定保存,按回车确定保存的文件名。

重要:要把之前下载的leanote.tar.gz挪到Dockerfile所在的目录下,不想挪你重新下载也行,但是压缩包必须和Dockerfile在一起,很重要

创建一个新的镜像,名字为axboy/leanote,tag为no-db2.6.1

$docker build . -t="axboy/leanote:no-db2.6.1"

运行leanote镜像

$ mkdir /home/bubao/disk/data1/opt/leanote
$ cd /home/bubao/disk/data1/opt/leanote
docker run -d --name leanote \--restart=always \-v `pwd`/db:/data/db \-v `pwd`:/data/leanote \-p 10001:9000 \axboy/leanote:no-db2.6.1

上面这段命令我们做了这些几件事

  1. docker 运行一个新的容器,以后台运行容器(-d),命名为leanote
  2. 把容器中的/data/leanote配置挂在再宿主机的pwd目录下,方便持久化配置
  3. 端口转发,把容器的9000端口转发到宿主机的10001端口
  4. 运行容器的镜像

(下午的时候,知道一个网友安装发现权限问题,所以这里给出一个方案,很简单粗暴的方案)

$ sudo chown -R root:root yourpath/leanote
$sudo chmod -R 777 yourpath/leanote

现在我们可以通过独立mongo容器管理我们所有的数据。

配置

安装完还不能马上使用,因为我们还没有把数据库和leanote进行关联。这时候我们需要修改配置。

数据库的IP

$docker exec mongo cat /etc/hosts

从上图可以看到ip是127.17.0.2,我们那么我们需要的容器IPdocker宿主机的ip就是127.17.0.1(也就是最后一位为1即是docker宿主机的ip)。

修改配置

$nano yourpath/leanote/conf/app.conf

修改的地方有

  • db.host
  • db.dbname
  • db.port

改为相应的参数

注意:如果你修改并重启后依然无法访问,需要执行下面的操作

把admin改为root,保持重启

再次访问服务器地址 ip:port ,网页的控制台显示为下面这样

再把配置改回admin,再重启

点击查看更多内容

MongoDBLinuxDocker

作者:布宝
链接:https://www.imooc.com/article/49225?block_id=tuijian_wz
来源:慕课网
本文首次发布于慕课网 ,转载请注明出处,谢谢合作

转载于:https://my.oschina.net/u/167403/blog/3009927

使用Docker搭建私有云笔记相关推荐

  1. Windows系统用Docker搭建私有仓库

    Windows系统用Docker搭建私有仓库 一.安装Docker Desktop 二.创建私有仓库 三.验证私有仓库是否创建成功 一.安装Docker Desktop 1.1.可以在软件管家安装这个 ...

  2. 基于Docker搭建私有镜像仓库

    通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...

  3. docker搭建私有仓库

    紧接上一篇镜像发布到官方之后,我们来搭建我们自己的私有仓库,比较,如果真的要在生产环境使用的话,这是必须的. 首先,我们来准备一下搭建私有仓库所需要的信息. #先吧私有仓库down下来,这需要一点时间 ...

  4. docker搭建私有registry

    搭建docker的私有registry 1.   registry简介 Docker在2015年推出了distribution项目,即Docker Registry 2.相比于old registry ...

  5. 群辉NAS+为知笔记docker定制私有云笔记

    前提条件: 群辉NAS支持docker 有公网ipv6或者公网ipv4,或者外网访问NAS网址 实现目标: 为知笔记在群辉NAS上成功运行 外网网页和客户端均可以访问云笔记 为知笔记限制: 官方doc ...

  6. 基于Joplin和WebDAV搭建私有云笔记

    一.私有Docker搭建WebDAV服务 从https://github.com/winsoft666/docker-webdev下载Docker配置文件: git clone https://git ...

  7. docker 搭建私有网盘owncloud

    最近看到一个私有网盘owncloud搭建起来非常简单,就试了一下,尤其是使用docker搭建,简单快捷,搭建完成之后,用了一下,很简洁,打算后续把自己家里的电脑插个硬盘,装个docker,搭建ownc ...

  8. Docker搭建私有镜像仓库

    一. 常见镜像仓库服务 镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库:例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的 ...

  9. docker搭建私有git服务器

    20210506 - 引言 使用git的时候,网的问题总是特别慢,反正本来也就是自己的东西,索性直接搭建一个私有的git服务器.搭建起来还是比较方便的.直接用docker搭建就好了. 步骤 1. 拉取 ...

最新文章

  1. docker技术剖析--docker资源限制及应用总结 for centos7.2
  2. 互联网+办公”中的网红企业网盘——坚果云
  3. 百度搜索打不开第二页_北易信息:百度爱采购适合做优化推广吗
  4. Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)...
  5. 《Java程序设计》实验报告——Java的基本程序设计结构
  6. 程序员修仙之路--优雅快速的统计千万级别uv
  7. Git学习总结(8)——Git和SVN之间的基本区别
  8. Java首选项Preferences
  9. 企业申请SSL证书选择OV证书还是EV证书好
  10. win10家庭版优化
  11. 人生成绩单97php,2020年国际国内正赛男乒成绩单,樊振东冠军最多。
  12. 远程桌面优化避坑指南
  13. 罗技M545鼠标是不是垃圾鼠标中的战斗机?
  14. csp-j2022比赛心得
  15. 大众 mib android auto,【图】加入互联基因 体验大众第二代MIB多媒体_汽车之家
  16. 【名单回顾】中国计算机学会NOI Online能力测试入门组获得前25%证书名单(北京地区小学组)
  17. 高等数学课程学习网站设计应用
  18. JS遍历数组和对象的方法
  19. uC/OS(Micro Controller OS)微控制器操作系统--UCOS
  20. 计算机原理期末试卷,计算机组成原理 期末试卷七及答案

热门文章

  1. vs2005 c# mysql_在VS2010中怎样用C#创建数据库联接并执行sql语句 最好举个例子讲一下...
  2. python中的translate_Python translate()方法
  3. vue 列表更改排序,不刷新问题
  4. 选择排序、冒泡排序、异或运算
  5. 对百度超级链Xuper使用过程中的进一步理解
  6. 最近两天遇到的问题 原因 和处理方式 小结
  7. Spring Boot+Maven将配置文件打包到Jar包外方便运维修改配置
  8. K8s入门教程|这个给集群搞硬装的才是幕后英雄
  9. 在容器里设置GOMAXPROCS的正确姿势
  10. Oracle中两个重要的语句