本文为绿联docker上mysql+wikijs的配置教程。

mysql是众多数据库之一,很多其他的docker容器都需要用到数据库。比如图床、wikijs

所用nas:绿联dh2600

1.安装mysql

1.1 下载镜像

在绿联的docker套件-本地镜像-添加-官方库,搜索mysql

snipaste_2022-11-29_19-25-27.png

选择最新版本,点击确定,等待镜像拉取完毕

snipaste_2022-11-29_19-25-43.png

1.2 创建容器

随后在本地镜像列表中选择刚刚下载的mysql镜像,点击+创建容器

未提及的选项都无需设置

  • 若需要对容器进行资源限制,则至少给1G内存
  • 网络选择bridge
  • 存储空间建议本地新建一个文件夹进行映射,装载路径为/val/lib/mysql

snipaste_2022-11-29_19-26-52.png

  • 端口映射,其中3306是http,33060是https,这部分本地映射一个没有被占用的端口即可

snipaste_2022-11-29_19-27-17.png

  • 环境变量处添加MYSQL_ROOT_PASSWORD,值为mysql的初始密码

snipaste_2022-11-29_19-28-29.png

点击下一步-确定,容器创建完毕!


如果你的系统支持ssh,可以直接使用如下命令创建

1
2
3
4
5
6
7
8
9
docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-v 本地路径:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
mysql:8.0.30

这样创建出来的mysql,root用户密码是123456

1.3 确认安装成功

容器开始运行后,点击详细-终端,连接/bin/bash

snipaste_2022-11-29_19-38-51.png

若配置正确,则应该出现下面的画面

snipaste_2022-11-29_19-39-20.png

输入以下命令,进入mysql控制台

1
mysql -uroot -p密码

这里的密码是刚刚载环境变量中设置的密码,比如上面演示的密码是123456,那么就应该用下面的语句

1
mysql -uroot -p123456

如果出现下面的内容,则代表mysql安装成功!
snipaste_2022-11-29_19-41-20.png

1.4 创建数据库

但有mysql还不够,如果想给其他项目使用,我们还需要创建数据库

以WIKI JS为例,先输入以下语句进入数据库

1
mysql -uroot -p密码

snipaste_2022-11-29_19-41-20.png

输入以下语句,创建数据库。可以复制后按shift+ins粘贴,不要用ctrl+v粘贴

1
CREATE DATABASE 数据库名;

创建一个名为WIKIJS的数据库

1
CREATE DATABASE WIKIJS;

1.5 创建用户

输入以下语句,查看当前数据库的用户

1
select user from mysql.user;

显示的结果如下(不知道为啥我这里有两个root,不影响使用)

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| root |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
+------------------+
6 rows in set (0.00 sec)

mysql>

为方便容器管理,我们给WIKI JS创建一个单独的用户,名为WIKI

1
CREATE USER 'WIKI'@'%' IDENTIFIED BY '123456';

这样,我们就创建了一个WIKI用户,密码为123456

创建完毕后,我们还需要给这个用户授权,让其有能力处理数据库

1
GRANT ALL ON WIKIJS.* TO 'WIKI'@'%';

上面这个语句的意思为,授予WIKI用户数据库WIKIJS中所有权限(ALL).

注意区分,ALL ON 后面的是数据名字,TO后的是用户名字

这样,WIKI用户和WIKIJS数据库都创建完毕了,可以在 WIKI JS 的环境变量中进行配置了

1.6 mysql的实际运用

如果你不是程序猿,单独的mysql容器可能没啥用,后续将分享mysql容器的两个使用实例

  • wiki js
  • chevereto 图床
  • lsky 图床

1.7 docker使用mysql命令总结

如果你看了上面那一堆,还是不懂,那就可以把下面的3个语句记住,对所有要用到MySQL数据库的docker容器都适用!

1
2
3
4
5
6
7
8
9
-- 先在nas的系统中进入MySQL容器的终端里面
docker exec -it 容器名 /bin/sh
-- 在MySQL的容器中执行如下命令
mysql -uroot -p密码
-- 进入MySQL命令行后,创建数据库和用户
create database 数据库名字;
-- 数据库名字要和上面创建的这个数据库对应
CREATE USER '用户名'@'%' IDENTIFIED BY '用户的密码';
GRANT ALL ON 数据库名字.* TO '用户名'@'%';

当然,如果你的NAS内存够多,你也可以选择抄别人的docker-compose文件一次性联动创建多个容器,突出一个傻瓜式;

2.WIKI JS

下面将继续讲解wiki jsdocker的安装,其至少需要1G内存,加上mysql容器,总共至少需要2G内存。请确认您nas的内存足够,再执行以下操作!

2.1 是什么

wikijs就是一个文档的呈现方式。该站点具有以下几个优点

  • 数据存本地,安全性高
  • 多用户在线编辑,可进行权限管理
  • 有历史版本管理,方便查看旧版本情况
  • 若有需要,可以将文档自动同步到云存储平台备份,如git仓库
  • 可导出数据到本地,均为markdown格式。脱离wiki js也可以用typora等支持markdown的软件打开

2.2 有啥用

你可能觉得,这玩意对家庭用户来说没啥用啊?实际上,它可以作为一个极其不错的家庭记事本

所有的数据都是存在你本地的nas上的,只要在家就可以简单地通过ip+端口的方式访问wikijs。电脑手机都能直接在线编辑,免去了多端同步的烦恼。

如果你有公网ip,还可以在外网直接访问;没有公网ip的也可以用樱花frp进行内网穿透,免费10m带宽足够wiki js使用了(樱花frp的docker安装教程见官网帮助文档)

相当于一个云同步的记事本!(只不过对手机编辑并不是很友好)

2.3 下载wikijs镜像

老地方,添加镜像,选择 linuxserver/wikijs 的latest版本即可

snipaste_2022-11-29_19-58-20.png

2.4 安装配置

网络模式选择bridge

创建一个新文件夹,映射给wikijs的/config,记得修改权限为读写

snipaste_2022-11-29_20-00-10.png

wikijs的端口只有一个,设置一个不冲突的即可

snipaste_2022-11-29_20-00-26.png

环境变量需要我们配置很多!划重点!!

在配置环境变量前,请先参考 01-mysql 中的教程,在mysql中创建一个WIKIJS数据库,和WIKI用户

环境变量
DB_TYPEmysql
DB_HOST数据库主机名或ip,直接填写nas的ip即可
DB_PROTmysql容器的端口
DB_USER数据库用户名
DB_PASS数据库用户的密码
DB_NAME数据库名称

其中DB_TYPE为数据库类型,支持 mysql, postgres, mariadb, mssql, sqlite,本文使用的是mysql

下图为一个配置后的示例

snipaste_2022-11-29_20-11-19.png

配置完环境变量后,容器就配置完成了,点击确定

3.使用wikijs

在浏览器页面输入你nas的ip+端口,即可打开wiki js的网页。

是英语的咋办?别担心,进去之后就可以改成中文了。

  • Administrator Email 管理员邮箱,输入一个你自己的邮箱即可
  • Passwd 密码
  • Confirm Passwd 确认密码

url这里可以不填,填完信息后直接点击下面的INSTALL即可

微信图片_20221129201339.png

初次使用的时候需要下载一些依赖项,下载完成后,即可进入登录页面。输入你刚刚设置的账户邮箱,点击log in进入wikijs的管理后台

snipaste_2022-11-29_20-16-35.png

进入之后你会看到两个选项(无截图)直接点击右边那个进入管理页面👇

snipaste_2022-11-29_20-18-24.png

进入后选择Locale,在右侧可以看到中文,下载之后,选择中文再点击右上角绿色的APPLY,页面就变成中文了

snipaste_2022-11-29_20-18-36.png

随后就创建一个页面吧!

学习markdown语法

如果你之前没有接触过任何markdown语法,则可以选择富文本编辑器

snipaste_2022-11-29_20-22-01.png

个人建议学习一下基本的markdown语法,非常简单!在很多平台(CSDN、知乎、博客园)以及很多笔记软件(为知、有道云、flowus等)都是支持markdown的。

学习md语法可以查看此网站 👉 markdown.com.cn

OVER!

现在你已经可以将wiki js作为多人协作文档编辑站点,或者是你的家庭记事本了!

随时可看,随时可编辑!

参考文章