本例中使用的是sameersbn docker-redmine。使用其它镜像安装的Redmine,备份、恢复方法可能会不同。
部署过程如下
使用Docker部署Redmine项目管理系统
一、手动创建备份文件
先停止并删除正在运行的Redmine容器。因为挂有卷,所以数据不会丢。
docker stop redmine && docker rm redmine
创建备份
1
2
3
4
5
6
7
8
9
10
11
12
13
|
docker run --name=redmine -it --rm -d \
--link=postgresql-redmine:postgresql --publish=80:80 --publish=443:443\
--env SMTP_METHOD=smtp \
--env SMTP_STARTTLS=true \
--env SMTP_HOST=smtp.qiye.aliyun.com \
--env SMTP_PORT=465 \
--env SMTP_DOMAIN=aliyun.com \
--env SMTP_AUTHENTICATION=:login \
--env SMTP_USER=redmine@aliyun.com \
--env SMTP_PASS=aliyun.com \
--volume=/srv/docker/redmine/redmine:/home/redmine/data \
--volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
sameersbn/redmine:latest app:backup:create
|
注意,上边的代码中,需要把邮箱部分换成自己的信息。
简单解释一下
1
2
|
--rm 运行后删除容器
app:backup:create 创建备份
|
生成的备份文件,默认在/home/redmine/data/backups目录下,在宿主机上对应挂卷的位置也能找到。在恢复的时候,系统会默认在这个文件夹下找备份文件。
二、手动恢复备份文件
如果有Redmine容器在运行,要先停止并删除正在运行的Redmine。
docker stop redmine && docker rm redmine
恢复备份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
docker run --name=redmine -it --rm -d \
--link=postgresql-redmine:postgresql --publish=80:80 --publish=443:443\
--env SMTP_METHOD=smtp \
--env SMTP_STARTTLS=true \
--env SMTP_HOST=smtp.qiye.aliyun.com \
--env SMTP_PORT=465 \
--env SMTP_DOMAIN=aliyun.com \
--env SMTP_AUTHENTICATION=:login \
--env SMTP_USER=redmine@aliyun.com \
--env SMTP_PASS=aliyun.com \
--volume=/srv/docker/redmine/redmine:/home/redmine/data \
--volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
sameersbn/redmine:latest app:backup:restore
|
选择备份文件后,自动还原,还原后容器自动删除。
重新生成容器,Redmine就成功把数据还原了。
生成容器方法在这里
使用Docker部署Redmine项目管理系统
可以登录系统,查看一下之前的数据是否还在。