为了给公司搭建个知识库重新做了选型,看过了好几个工具包括MkDocs、MM-markdown等,最后选用开源的BookStack作为知识库,原因有三:

BookStack是开源的,并且项目在GitHub中的活跃度很高;
BookStack是PHP开发的,数据库使用的是MySQL5,最最最难得的是他有Docker版本。这样就不需要部署一套LAMP了,直接通过Docker+MySQL就可以运行;
配置方便,提供了后台配置页面,所有的站点内细节都可以通过配置后台解决;
Docker部署
Docker Hub地址:https://hub.docker.com/r/linuxserver/bookstack

镜像拉取:

docker pull linuxserver/bookstack
1
镜像启动:

docker run --name=bookstack \
-e PUID=1000 \
-e PGID=1000 \
-e DB_HOST=172.17.0.5 \
-e DB_USER=yzh \
-e DB_PASS=0623 \
-e DB_DATABASE=bookstackapp \
-p 6875:80 \
-v /Users/yuanzhenhui/Documents/docker_data/bookstack:/config \
--restart unless-stopped \
linuxserver/bookstack
1
2
3
4
5
6
7
8
9
10
11
数据库只能使用5.6.x版本的,不能用5.x以上的MySQL数据库(经过尝试除了5.x的版本外其他版本MySQL数据库连接不上,估计是连接驱动的问题)。
通过DB_HOST、DB_USER、DB_PASS、DB_DATABASE就可以将数据库配置写上了。最后,启动前先将目标数据库bookstackapp建好就可以启动了。

成功启动后会看到[services.d]done的字样,第一次启动的时候会创建表并初始化用户信息。

页面访问
系统启动后可以通过URL登录:http://localhost:6875/login

初始化登录使用以下用户名和密码:
用户名:admin@example.com
密码:password

就可以登录后台了,如果出现一直loading的情况可以刷新一下页面就可以了。

至此,登录后台之后可以配置用户数据和权限信息了。

树莓派搭建脚本
由于BookStack提供了Docker镜像也就是说它可以在树莓派中进行部署,还好Docker也有提供适用于ARM核心的镜像。在下载了镜像后就可以做以下操作了。

BookStack容器创建:

sudo docker run --name=bookstack \
-d \
-e PUID=1000 \
-e PGID=1000 \
-e DB_HOST=172.17.0.2 \
-e DB_USER=yzh \
-e DB_PASS=0623 \
-e DB_DATABASE=bookstackapp \
-p 6875:80 \
-v /mnt/depot/docker/bookstack:/config \
--restart=always \
linuxserver/bookstack
1
2
3
4
5
6
7
8
9
10
11
12
由于树莓派中已经不再支持高版本的MySQL数据库了(可能是因为MySQL被Oracle收购的原因,树莓派没有5.x后的MySQL库了,取而代之的是MariaDB这个同宗同源的数据库,事实证明MariaDB现在是越做越好了~我个人是这么认为的),所以这里用的是ARM版本的Docker镜像,MySQL5容器创建:

sudo docker run -p 3506:3306 \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql5 \
-d \
--restart=always \
biarms/mysql:5.5.62-linux-arm32v7-beta-travis
1
2
3
4
5
6
MySQL5配置信息获取:

sudo docker cp mysql5:/var/lib/mysql /home/pi/Documents/mysql5/data
1
sudo docker cp mysql5:/etc/mysql /home/pi/Documents/mysql5/config
1
启动MySQL5容器:

sudo docker run -p 3506:3306 \
-v /mnt/depot/docker/mysql5/data:/var/lib/mysql \
-v /mnt/depot/docker/mysql5/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql5 \
-d \
--restart=always \
biarms/mysql:5.5.62-linux-arm32v7-beta-travis
————————————————
版权声明:本文为CSDN博主「kida_yuan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kida_yuan/article/details/113865348

【Docker】通过Docker部署BookStack的更多相关文章

  1. Docker + Jenkins 持续部署 ASP.NET Core 项目

    Docker 是个好东西,特别是用它来部署 ASP.NET Core Web 项目的时候,但是仅仅的让程序运行起来远远不能满足我的需求,如果能够像 DaoCloud 提供的持续集成服务那样,检测 gi ...

  2. Ubuntu 16.04+.Net Core+Docker+Uginx安装部署

    前言 最近公司的项目打算移植到.Net Core平台,所以调研了一下.Net Core在Linux下的安装部署.本篇文章会一步步的描述从安装到配置到部署的全部过程.在文章的结构和内容里,笔者借鉴了很多 ...

  3. ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

    一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...

  4. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  5. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  6. docker容器自动化部署(一)

    1.docker容器暴露多个端口 To expose just one port, this is what you need to do: docker run -p <host_port&g ...

  7. docker+gitlab+gitlab-runner部署

    环境 服务端:centos7 客户端:window 在centos7上部署docker+gitlab+gitlab-runner,win10利用ssh连接,开发人员只需提交代码,就可以进行项目文件上传 ...

  8. Docker+Nextcloud快速部署个人网盘

    各位大佬好,,,萌新顾北清又回来更新了,今天要快速部署一个人网盘. 有多快呢,,,5分钟吧,因为我们使用Docker部署. Docker基础可以看看我之前的博文.(点这里点这里) 那么,,,开始吧. ...

  9. 基于Jenkins,docker实现自动化部署(持续交互)

      前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...

  10. Docker记录-Docker部署记录

    1.Docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

随机推荐

  1. 微信小程序生成海报方案

    前段时间因为业务需求,需要在微信小程序里分享海报,于是在网上找到了这个方案.此处主要是搬运了网上的内容,加上我自己融合的组件的下载内容.具体如下: 第一步:下载组件 下载组件:Painter 一款轻量 ...

  2. kubernetes部署kafka集群

    一.kafka介绍 kafka是一个分布式.多副本.多订阅者.分区的,基于zoopkeeper协调的分布式日志系统.其主要特点为: 1.以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上 ...

  3. shell脚本加密软件shc

    一.简单介绍 shc是linux的一款加密脚本的插件,将shc放到系统的可执行目录下我们可以直接运行shc命令 二.shc的安装 [root@disk ~]#yum install gcc -y [r ...

  4. 历时半年,我将一个大型asp.net的零代码快速开发平台转成了java

    老的博客园朋友应该清楚,我在10年前开发了一个基于asp.net的大型开发平台,其中作为开源项目的SilverLight流程设计器也获得了当年的微软开发大奖.时过境迁,当年的设计器早就在技术的更新换代 ...

  5. 如何把数据库中的多个关联字段快速生成思维导图(excel如何将内容快速生成思维导图)

    本次记录绝对干货 一:要求 今天遇到的需求,又是一件费力的活,要求如下:数据库中有三个字段,分别是一级分类,二级分类,三级分类,三个字段是级别关系,三级分类一共有上百个,现要求用思维导图的方式展示出来 ...

  6. 论文中关于要使用600线的python代码

    简介 论文中通常要使用600dpi的图片, 如果一个一个用PS来进行修改实在是费力不讨好. 使用python一套带走 code import os from PIL import Image impo ...

  7. C++ 类模板 模板类 。。。

    ## 转载: [CSDN](http://blog.csdn.net/sunxx1986/article/details/6619144) 最后提醒:在本文的几个术语中,语言的重心在后面,前面的词是作 ...

  8. ubuntu 开机自动启动程序

    简介 RT 参考链接 https://www.cnblogs.com/downey-blog/p/10473939.html 下面的链接靠谱些 https://zhuanlan.zhihu.com/p ...

  9. ETL数据集成丨MySQL到MySQL的数据迁移实践

    前言 MySQL数据迁移至另一MySQL数据库的过程,不仅是数据复制或移动的操作那么简单,它还涉及到一系列策略性考量和技术优化,旨在实现数据的高效.安全传输,以及确保目标系统的高性能运行.其深远意义在 ...

  10. 数据迁移新技能,MongoDB轻松同步至ClickHouse

    在当今数据驱动的世界中,企业的成功依赖于对数据的高效管理和精准分析.数据迁移是实现这些目标的关键环节,而选择合适的工具可以让这项工作变得更加轻松和高效.ETLCloud 是一款创新的 ETL(提取.转 ...