CentOS7.9 Docker部署Leanote(蚂蚁笔记)
背景:之前一直在winserver服务器上部署的,正好赶上服务器到期了,然后手上有liunx服务器,所以就部署到docker上了,踩了些坑,在这分享下教程。
1、windows服务器备份mongodb
备份完毕的文件夹叫做“Leanote_data220717”
2、leanote docker部署
2.1 拉取镜像
这里说下,我发现一个镜像内置了mongodb,就不用单独安装了,太给力了。https://hub.docker.com/r/axboy/leanote ,https://hub.docker.com/r/axboy/leanote ,这里选择“内置db”版本
docker pull axboy/leanote
2.2 启动容器
为方便修改配置和迁移数据,建议映射如下文件夹。
mkdir -p /leanote/{db,files,conf,public/upload}
/leanote/db # 内置mongodb的数据目录,nodb版无此目录
/leanote/conf # 笔记的配置文件目录
/leanote/files # 笔记内上传的图片、文件存放目录
/leanote/public/upload # 头像上传路径
docker run -d --name leanote \
-v `pwd`/db:/leanote/db \
-v `pwd`/conf/:/leanote/conf \
-v `pwd`/files:/leanote/files \
-v `pwd`/upload:/leanote/public/upload \
-p 9000:9000 \
axboy/leanote
启动完事,就能运行了,默认帐号:admin,默认密码:abd123,这个时候就可以正常使用了,但是我是从Windows迁移过来的,所以要做db还原
2.3 还原db
2.3.1 db文件夹传到宿主机上
2.3.2 复制db文件夹至容器内
docker cp /root/Leanote_data220717/ leanote:/Leanote_data220717
2.3.3 还原db
#进入宿主机
docker exec -it leanote /bin/sh
#还原db
mongorestore -h localhost -d leanote --dir /Leanote_data220717/ --drop
#这块如果报错,例如找不到文件,那是因为Leanote_data220717文件下还有一层leanote
#这个文件夹才是db外层文件夹,所以在复制文件到容器的时候直接复制该文件夹
docker cp /leanote231119/leanote leanote:/leanote231119
2.4 备份db
#进入容器
docker exec -it leanote /bin/sh
#备份db
mongodump -h localhost -d leanote -o /leanote220718
#退出容器,在docker中运行以下命令,将备份copy到宿主机
docker cp leanote:leanote220718 /leanote220718