通过Docker快速搭建个人wiki,开源wiki系统用于知识沉淀,教学管理,技术学习
部署步骤
## 拉取 MrDoc 代码
### 开源版:
git clone https://gitee.com/zmister/MrDoc.git### 专业版:
git clone https://{用户名}:{密码}@git.mrdoc.pro/MrDoc/MrDocPro.git
git clone https://mrdoc:123456@git.mrdoc.pro/MrDoc/MrDocPro.git# ### 拉取镜像
docker pull zmister/mrdoc:v5# ### 导入离线镜像 离线 Docker 镜像下载链接: [https://pan.baidu.com/s/1OExl7iEz62YSF4u6aQ0UGA?pwd=fr87](https://pan.baidu.com/s/1OExl7iEz62YSF4u6aQ0UGA?pwd=fr87) 提取码: fr87
docker load -i docker-mrdoc-env.v5.tar# 准备目录
(base) [lh@tiger001 dockers]$ mkdir MrDoc
/home/lh/dockers/MrDoc/MrDoc(base) [lh@tiger001 MrDoc]$ pwd
/home/lh/dockers/MrDoc# ## 运行 Docker 容器### 开源版:
docker run -d --name mrdoc -p 10086:10086 -v /home/lh/dockers/MrDoc/MrDoc:/app/MrDoc zmister/mrdoc:v5### 专业版:
docker run -d --name mrdocpro -p 10087:10087 -v /home/lh/dockers/MrDoc/myDocPro/MrDocPro:/app/MrDoc zmister/mrdoc:v5# 数据库准备
(base) [lh@tiger001 ~]$ docker exec -it mymysql57 bash
bash-4.2# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.41-log MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show grants for root-> ;
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.02 sec)mysql> create user 'mrdoc'@'%' IDENTIFIED BY 'nongfuspring';
Query OK, 0 rows affected (0.44 sec)mysql> grant ALL on *.* to 'mrdoc'@'%';
Query OK, 0 rows affected (0.02 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)mysql> show grants for mrdoc;
+--------------------------------------------+
| Grants for mrdoc@% |
+--------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'mrdoc'@'%' |
+--------------------------------------------+
1 row in set (0.00 sec)mysql> CREATE DATABASE myMrDoc DEFAULT CHARACTER SET = 'utf8mb4';# 管理
### 配置mysql数据库依赖
### 安装 mysqlclient
docker exec -it mrdoc pip install mysqlclient### 初始化数据库
python manage.py makemigrations
python manage.py migrate### 创建管理员账户
docker exec -it mrdoc python manage.py createsuperuser### 修改用户密码
docker exec -it mrdoc python manage.py changepassword admin
# lhcomeon### 停止容器
docker stop mrdoc### 删除容器
docker rm -f mrdoc### 启动容器
docker start mrdoc### 查看日志
docker logs mrdoc
关闭防火墙
“Table ‘mymrdoc.auth_user’ doesn’t exist”
需要初始化数据库
/app/MrDoc # python manage.py makemigrations
No changes detected
/app/MrDoc # python manage.py migrate
Operations to perform:Apply all migrations: admin, app_admin, app_api, app_doc, auth, contenttypes, sessions
Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying app_admin.0001_initial... OKApplying app_admin.0002_auto_20191117_0808... OKApplying app_admin.0003_auto_20191117_0816... OKApplying app_admin.0004_auto_20191121_2103... OKApplying app_admin.0005_auto_20191125_2155... OKApplying app_admin.0006_registercode... OKApplying app_admin.0007_auto_20200222_1106... OKApplying app_admin.0008_useroptions... OKApplying app_api.0001_initial... OKApplying app_api.0002_auto_20200322_0929... OKApplying app_api.0003_appusertoken... OKApplying app_doc.0001_initial... OKApplying app_doc.0002_doc_pre_content... OKApplying app_doc.0003_auto_20190717_0915... OKApplying app_doc.0004_auto_20190717_0939... OKApplying app_doc.0005_auto_20190727_1232... OKApplying app_doc.0006_auto_20191215_1910... OKApplying app_doc.0007_auto_20191221_1035... OKApplying app_doc.0008_auto_20191221_1055... OKApplying app_doc.0009_projectreport... OKApplying app_doc.0010_auto_20200310_2032... OKApplying app_doc.0011_auto_20200313_2143... OKApplying app_doc.0012_auto_20200313_2204... OKApplying app_doc.0013_image_file_name... OKApplying app_doc.0014_auto_20200322_1459... OKApplying app_doc.0015_projectcollaborator... OKApplying app_doc.0016_attachment... OKApplying app_doc.0017_auto_20200404_0934... OKApplying app_doc.0018_dochistory... OKApplying app_doc.0019_dochistory_create_user... OKApplying app_doc.0020_projectreportfile... OKApplying app_doc.0021_projectreport_allow_pdf... OKApplying app_doc.0022_auto_20200618_2024... OKApplying app_doc.0023_auto_20200620_2009... OKApplying app_doc.0024_doctag_tag... OKApplying app_doc.0025_doc_editor_mode... OKApplying app_doc.0026_auto_20200905_2225... OKApplying app_doc.0027_projecttoc... OKApplying app_doc.0028_docshare... OKApplying app_doc.0029_auto_20201101_2050... OKApplying app_doc.0030_auto_20201102_2115... OKApplying app_doc.0031_remove_docshare_effective_time... OKApplying app_doc.0032_docshare_is_enable... OKApplying app_doc.0033_doc_open_children... OKApplying app_doc.0034_doc_show_children... OKApplying app_doc.0035_auto_20201221_2042... OKApplying app_doc.0036_auto_20201229_2004... OKApplying app_doc.0037_mycollect... OKApplying app_doc.0038_project_is_top... OKApplying app_doc.0039_auto_20211013_1021... OKApplying app_doc.0040_auto_20220311_1600... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying sessions.0001_initial... OK
/app/MrDoc #
用户名必须大于5个,改为lh123
测试效果如下:
防火墙设置
# 打开防火墙端口
sudo firewall-cmd --zone=public --add-port=5000/tcp --add-port=10086/tcp --permanent
# 关闭防火墙端口
sudo firewall-cmd --zone=public --remove-port=10086/tcp --permanent
# 重载配置
sudo firewall-cmd --reload
# 查看端口是否打开
sudo firewall-cmd --zone=public --query-port=5000/tcp
注意一个大问题,docker重启后数据丢失,概率问题
部署教程参照
官方 Docker 镜像部署 - MrDoc安装手册 - MrDoc觅思文档 - 文档站
配置文件说明 - MrDoc安装手册 - MrDoc觅思文档 - 文档站