0. 说明
基于阿里云的 Centos7.4 测试。
1. 快速搭建
# 安装 docker 和 docer-composer,如果已安装则直接跳过
yum install -y docker # 安装 docker,默认版本1.13.0
pip install docker-compose # 使用 pip 安装运行 docker-composer
systemctl start docker # 运行 docker
docker-compose --version # 检查版本
# 安装 docker 和 docer-composer,如果已安装则直接跳过
git clone https://github.com/LiWenGu/leanote_docker_composer.git
docker-composer up -d
bash restore_leanote_db.sh
# 测试
curl localhost/hello.html # nginx 文件映射测试
curl www.leanote.com # leanote测试,前提设置了 /etc/hosts:127.0.0.1 www.leanote.com
2. 目录设定
- /liwenguang/docker_compose_dir/leanote/data_upload 用于存储笔记的上传文件,方便以后迁移
- /liwenguang/docker_compose_dir/leanote/mongodb_backup 用于存储 leanote 的数据备份文件,用于 leanote 的初始化,一次使用便可删除。
- /liwenguang/docker_compose_dir/mongo/data 用于存储 mongodb 的数据文件,方便以后迁移
- /liwenguang/docker_compose_dir/nginx/nginx.conf 用于存储 nginx 的主配置文件。
- /liwenguang/docker_compose_dir/nginx/conf 用于存储 nginx 的服务器配置文件。
- /liwenguang/docker_compose_dir/nginx/nginx.pid 用于存储当前 nginx 的 pid ,用于集群。
- /liwenguang/docker_compose_dir/nginx/www 用于存储静态内容(测试nginx)。
- /liwenguang/docker_compose_dir/nginx/logs 用于存储 nginx 的日志。
- /liwenguang/docker_compose_dir/docker-composer.yml compose 的主模板文件。
注意:mongodb_backup 文件夹内容在官方的安装包内,因此可以对照得出 shell 脚本获取:
#! bin/sh
LEANOTE_VERSION=2.6.1
wget https://razaoinfo.dl.sourceforge.net/project/leanote-bin/${LEANOTE_VERSION}/leanote-linux-amd64-v${LEANOTE_VERSION}.bin.tar.gz
tar zxf leanote-linux-amd64-v${LEANOTE_VERSION}.bin.tar.gz
mkdir leanote
mv leanote/mongodb_backup /liwenguang/docker_compose_dir/leanote/mongodb_backup
rm -rf leanote && rm leanote-linux-amd64-v${LEANOTE_VERSION}.bin.tar.gz
3. docker-composer.yml
以下为 docker-composer.yml 的内容,主要在于账号密码的设置以及端口的映射还有目录的挂载。
version: '3'
services:
mongo:
image: mongo:4
container_name: mongo_compose
restart: always
ports:
- 27017:27017
# 对应目录 leanote 备份路径
volumes:
- ./leanote/mongodb_backup:/leanote/mongodb_backup
leanote:
image: liwenguang/leanote:2.6.1
container_name: leanote_app_compose
restart: always
# 发布端口,但是不映射到主机
ports:
- 9000
volumes:
- ./leanote/data_upload:/usr/local/leanote/public/upload
links:
- mongo
# 配置信息
environment:
- SITE_URL=www.liwenguang.com
# 使用登录账号密码需要在 mongo 中的 leanote 创建
# - DB_USERNAME=root
# - DB_PASSWORD=mongopwd
nginx:
image: nginx:1.14.0-alpine
container_name: nginx_compose
restart: always
# 发布并映射到主机端口
ports:
- 80:80
- 443:443
- 5050:5050
- 4040:4040
# 通信
links:
- leanote
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx/nginx.pid:/etc/nginx/nginx.pid
- ./nginx/www:/etc/nginx/www
- ./nginx/logs:/etc/nginx/logs
4. 执行 leanote mongodb 数据备份:
参考 leanote 官方备份指导,写出的脚本直接运行即可:
在 mongodb 容器内执行数据恢复(数据备份文件已经通过挂载映射到了 mongodb 容器内了)
docker exec mongo_compose mongorestore --host localhost --port 27017 -u root -p mongopwd --authenticationDatabase admin -d leanote --dir /leanote/mongodb_backup/leanote_install_data
5 nginx 配置
比较简单,nginx 配置两个服务器,一个文件映射,用于测试;一个域名映射,映射到 leanote 容器的 localhost:9000 。同时修改本地 hosts 文件,设置本地 DNS解析:
vim /etc/hosts
127.0.0.1 www.leanote.com
具体配置:
6. 常用命令
- docker images; 显示当前的镜像列表
- docker rmi imagesId: 删除某个镜像
- docker rm containerId:删除某个容器
- docker exec -it containerId sh:进入容器内
- docker cp containerId:/etc/file /etc/file:复制容器文件到主机
- docker exec containerId shell:在容器内执行shell命令
- docker-compose up -d [imagesName]:创建构建部署配置文件中特定的镜像
- docker-compose build [imagesName]:重新构建某个镜像
- docker-compose down:停止当前目录下该配置文件中的容器
- docker search imageName:查找中央仓库中的相关镜像信息
7. 参考
- https://hub.docker.com/r/zuolan/leanote/
- https://hub.docker.com/r/oakman/docker-leanote/~/dockerfile/
8. 由于笔者能力有限,有错误在所难免,给我提 issue,我会及时改正的。
来源:CSDN
作者:李文文丶
链接:https://blog.csdn.net/qq_21413417/article/details/82229678