文章目录
一、前言
1、需求来由
- 内部资料归档混乱,内部归档地址不一,不利于资料查找及工作交接
- 更新不及时,本地文档更新完,未同步上传到ftp服务器
- 归档文档多为word或pdf格式,不易于编辑维护
- 搭配任务管理系统使用,每一任务原则上都要求有输出件,以便于对任务做质量管控
综合实际存在的痛点,统一部门内部文档管理,搭建文档管理平台,用于管理开发、测试各项任务输出归档。
2、showdoc说明
showdoc是国内一款开源的文档管理系统,可用于编写API文档、数据字典、说明文档。
- 采用markdown编辑器,编辑及查阅体验较佳
- 支持版本历史功能,便于文档回滚恢复
- 支持回收站功能,删除超过30天以上的文件自动被删除
- 可按照大项分类,创建目录树状结构,支持全项目文档搜索
- 支持项目成员权限管控
二、部署安装
1、docker安装
1.1、下载docker离线包,解压缩拷贝到/usr/bin
目录下
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz --no-proxy
tar -zxvf docker-19.03.9.tgz
cp docker/* /usr/bin/
1.2、注册编辑docker服务,添加以下配置信息到/etc/systemd/system/docker.service
配置文件内
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
1.3、赋予/etc/systemd/system/docker.service
配置文件执行权限,重新加载配置文件
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
1.4、启动docker
服务,设置开机自启动
systemctl start docker
systemctl enable docker
2、showdoc安装
2.1、关闭selinux
注:启动容器需要写
/proc/self/attr/keycreate
配置,启用selinux会导致没有写入权限写入失败,导致启用容器出现write /proc/self/attr/keycreate: permission denied
错误
-
临时关闭selinux
setenforce 0
-
永久关闭selinux
修改/etc/selinux/config
配置文件,修改配置为SELINUX=disabled
2.2、拉取showdoc官方镜像,重命名镜像名为star7th/showdoc:latest
docker pull registry.cn-shenzhen.aliyuncs.com/star7th/showdoc
docker tag registry.cn-shenzhen.aliyuncs.com/star7th/showdoc star7th/showdoc
2.3、创建数据存储目录/opt/showdoc_data/html
,赋予存储目录最高权限,启动showdoc
容器
mkdir -p /opt/showdoc_data/html
chmod -R 777 /opt/showdoc_data
docker run -d --name showdoc --user=root --privileged=true -p 4999:80 -v /opt/showdoc_data/html:/var/www/html/ star7th/showdoc
2.4、此时web访问http://ip:4999
登录showdoc平台
注:默认登录账号密码为showdoc/123456
3、设置开机自启
查看当前容器ID,设置自动启动
-
方法一
docker update --restart=always
docker ps -a -q
-
方法二
echo "sleep 3" >> /etc/rc.local
echo "docker startdocker ps -a
" >> /etc/rc.local
三、数据备份
1、docker镜像备份
备份当前docker镜像
[root@node226 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
star7th/showdoc latest 29bb506bad96 28 hours ago 392MB
registry.cn-shenzhen.aliyuncs.com/star7th/showdoc latest 29bb506bad96 28 hours ago 392MB
[root@node226 ~]# docker save star7th/showdoc -o showdoc.tar
2、showdoc数据备份
2.1、编写备份脚本/opt/backup.sh
如下
[root@node227 ~]# cat /opt/backup.sh
#!/bin/bash
#定义备份路径
path="/mnt/backup"
#定义数据保存天数
day=3
#备份文件
zip -r $path/showdoc-`date +%Y%m%d%H%M`.zip /opt/showdoc_data/html/
#定期删除文件
find $path -type f -mtime +$day -exec rm -f {} \;
2.2、设置crontab定时任务,每天凌晨三点定时执行脚本
[root@node227 ~]# crontab -l
0 3 * * * /bin/bash /opt/backup.sh
四、数据恢复
1、docker镜像恢复
1.1、参照二、部署安装
完成docker环境部署
1.2、关闭selinux
修改/etc/selinux/config
配置文件,修改配置为SELINUX=disabled
[root@node134 ~]# setenforce 0
[root@node134 ~]# cat /etc/selinux/config | grep SELINUX=
SELINUX=disabled
1.3、将docker镜像导入到目标服务器内
[root@node134 ~]# docker load < showdoc.tar
[root@node134 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
star7th/showdoc latest 29bb506bad96 30 hours ago 392MB
1.4、运行容器
[root@node134 ~]# mkdir -p /opt/showdoc_data/html
[root@node134 ~]# chmod -R 777 /opt/showdoc_data
[root@node134 ~]# docker run -d --name showdoc --restart=always --user=root --privileged=true -p 4999:80 -v /opt/showdoc_data/html:/var/www/html/ star7th/showdoc
2、showdoc数据恢复
恢复数据库数据Sqlite/showdoc.db.php
和附件数据Public/Uploads/.
后,重新访问showdoc平台即可
[root@node134 ~]# unzip showdoc-202011171546.zip
[root@node134 ~]# \cp -r opt/showdoc_data/html/Sqlite/showdoc.db.php /opt/showdoc_data/html/Sqlite/
[root@node134 ~]# \cp -r opt/showdoc_data/html/Public/Uploads/. /opt/showdoc_data/html/Public/Uploads/
五、常用操作
1、镜像相关
- 查看镜像列表:
docker images
- 搜索官方镜像:
docker search <image_name>
- 下载官方镜像:
docker pull <image_name>
- 重命名镜像:
docker tag <image_name_source> <image_name_target>
- 删除镜像:
docker rmi <image_name>
- 导出镜像:
docker save <image_name> -o <file_name>
- 导入镜像:
docker load < <file_name>
2、容器相关
- 查看容器列表:
docker ps -a
- 停止容器:
docker stop <container_id>
- 启动容器:
docker start <container_id>
- 删除容器:
docker rm <container_id>
- 进入容器:
docker attach <container_id>