Docker 安装 mrdoc (开源版)觅思文档
本篇文档将会介绍使用 Docker 容器部署 MrDoc。
Telegram群:https://t.me/mrdocfun
QQ群: 281849650 验证码:mrdoc.fun
以上群组均为文档作者创建的三方爱好者群.
自0.5.9版本开始启用,与之前版本区别如下:
1.更改 mrdoc-alpine 的自定义端口方式与 nginx 版本一致.
2.简化数据库初始化和更新表结构命令,由手动执行更改为容器内自动执行.
Docker 版本说明
mrdoc-alpine: 采用 runserver 方式运行 (支持 amd64/arm64 平台)
Docker Stars Docker Pulls Docker Image Version (latest semver)
dockerhub官网链接: https://hub.docker.com/r/jonnyan404/mrdoc-alpine
mrdoc-nginx: 采用 uwsgi/nginx 方式运行(支持 amd64/arm64 平台)
Docker Stars Docker Pulls Docker Image Version (latest semver)
dockerhub官网链接: https://hub.docker.com/r/jonnyan404/mrdoc-nginx
Docker安装(已安装可忽略)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
设置开机启动,并启动 docker
systemctl enable docker
systemctl start docker
一、简单教程
mrdoc-alpine
docker run -d --name mrdoc -p 10086:10086 jonnyan404/mrdoc-alpine
nginx版本,更换mrdoc-alpine为mrdoc-nginx即可
默认端口:10086
默认用户:admin
默认密码:请执行 docker logs mrdoc 2>&1|grep pwd 获取[自0.6.3版本开始生效]
如果获取的默认密码无法登录,请参考 https://www.mrdoc.fun/project-1/doc-242/ 这里解决!!!
打开 http://IP:10086 即可访问。
二、进阶教程
①挂载本地目录
1.创建文件夹:
mkdir -p ~/mrdoc/media
2.运行容器
docker run -d --name mrdoc -p 10086:10086 -v ~/mrdoc:/app/MrDoc/config -v ~/mrdoc/media:/app/MrDoc/media jonnyan404/mrdoc-alpine
nginx版本,更换mrdoc-alpine为mrdoc-nginx即可
##########
一键脚本迁移过来的用户请注意替换-v ~/mrdoc:/app/MrDoc/config -v ~/mrdoc/media:/app/MrDoc/media
为 -v /opt/jonnyan404/MrDoc:/app/MrDoc
##########
默认端口:10086
默认用户:admin
默认密码:请执行 docker logs mrdoc 2>&1|grep pwd 获取[自0.6.3版本开始生效]
如果获取的默认密码无法登录,请参考 https://www.mrdoc.fun/project-1/doc-242/ 这里解决!!!
打开 http://IP:10086 即可访问。
②自定义映射端口
提供变量 LISTEN_PORT 用来自定义容器内端口.
如有需要,自行设置即可.
三、docker 版本手动升级
2022-08-31 日更新,无重大升级,将不在更新docker镜像。升级参见步骤0
容器内直接升级
docker exec -it mrdoc git pull
docker restart mrdoc
数据备份
如果未挂载本地目录,请按照步骤执行。
如果已挂载,仅需执行第 2 步即可。
docker cp mrdoc:/app/MrDoc/config /tmp/config
docker cp mrdoc:/app/MrDoc/media /tmp/media
升级版本
在此以alpine版本进行示例,如果使用Nginx版本,请将mrdoc-alpine替换为mrdoc-nginx
docker pull jonnyan404/mrdoc-alpine
docker stop mrdoc && docker rm mrdoc
然后重新运行之前的 docker run 命令
恢复数据
docker cp /tmp/config mrdoc:/app/MrDoc
docker cp /tmp/media mrdoc:/app/MrDoc
重启容器
docker restart mrdoc
四、docker 版本自动升级
前提条件:
1.仅支持 latest 标签
2.需能畅通访问 dockerhub
3.需要使用 dockerhub 官方源
docker run -d
--name watchtower
--restart unless-stopped
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower
--cleanup
-s "0 3 * * *"
mrdoc
注意:
仅限已挂载数据目录的使用,否则会造成数据丢失.
--cleanup 升级会自动清理老版本
-s 定时检查更新,上述默认每天凌晨3点检查更新
mrdoc 代表仅自动更新名称为 mrdoc 的容器
更多参数解释,请参考watchtower官网
六、docker 可视化面板(可选)
方便执行 启动/停止/重启 功能.
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce
打开 http://IP:9000 访问
七、HTTPS域名证书配置
此项是实验性质,仅适用于个人项目使用!!!
以下教程二选一
教程一(适用于小白):
教程二(适用于爱折腾):
将仅在 mrdoc-alpine 的 0.8.1 开始及之后版本生效.~
基于caddy实现自动证书配置.~
提供变量 DN 用来设置域名,示例命令如下:~
docker run -d --name mrdoc -e DN=www.mrdoc.fun -p 80:80 -p 443:443 -v ~/mrdoc:/app/MrDoc/config -v ~/mrdoc/media:/app/MrDoc/media jonnyan404/mrdoc-alpine
升级的话,参考步骤三里的手动升级.