Docker 安装 mrdoc (开源版)


本篇文档将会介绍使用 Docker 容器部署 MrDoc。

以上群组均为文档作者创建的三方爱好者群.


自0.5.9版本开始启用,与之前版本区别如下:
1.更改 mrdoc-alpine 的自定义端口方式与 nginx 版本一致.
2.简化数据库初始化和更新表结构命令,由手动执行更改为容器内自动执行.

Docker 版本说明

mrdoc-alpine: 采用 runserver 方式运行 (支持 amd64/arm64 平台)

mrdoc-nginx: 采用 uwsgi/nginx 方式运行(支持 amd64/arm64 平台)

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:0.8.1
### 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:0.8.1
### 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 即可访问。

②自定义映射端口

提供变量 LISTEN_PORT 用来自定义容器内端口.
如有需要,自行设置即可.

三、docker 版本手动升级

---

2022-08-31 日更新,无重大升级,将不在更新docker镜像。升级参见步骤0


  1. 容器内直接升级
docker exec -it mrdoc git pull
docker restart mrdoc
 

  1. 数据备份

如果未挂载本地目录,请按照步骤执行。
如果已挂载,仅需执行第 2 步即可。

docker cp mrdoc:/app/MrDoc/config /tmp/config
docker cp mrdoc:/app/MrDoc/media /tmp/media
 
  1. 升级版本

在此以alpine版本进行示例,如果使用Nginx版本,请将mrdoc-alpine替换为mrdoc-nginx

docker pull jonnyan404/mrdoc-alpine:版本号 #此处版本号自行替换为将要升级的数字
docker stop mrdoc  && docker rm mrdoc
然后重新运行之前的 docker run 命令
 
  1. 恢复数据
docker cp /tmp/config mrdoc:/app/MrDoc
docker cp /tmp/media mrdoc:/app/MrDoc
 
  1. 重启容器
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
 

注意:

  1. 仅限已挂载数据目录的使用,否则会造成数据丢失.
  2. --cleanup 升级会自动清理老版本
  3. -s 定时检查更新,上述默认每天凌晨3点检查更新
  4. mrdoc 代表仅自动更新名称为 mrdoc 的容器
  5. 更多参数解释,请参考watchtower官网

六、docker 可视化面板

方便执行 启动/停止/重启 功能.

docker run -d  -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock  portainer/portainer-ce
 

七、HTTPS域名证书配置

此项是实验性质,仅适用于个人项目使用!!!

这版本有bug存在,待排查解决后再次公布,问题解决期间,
请先按上方教程正常部署安装mrdoc,
然后有https需求的可用教程 https://mrdoc.fun/doc/832/ 替代。

将仅在 mrdoc-alpine0.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:0.8.1

 



adouk 2023年1月7日 22:49 收藏文档