最近好友让我帮忙搭建一个confluence,对比了一下使用docker的方式比较快捷,顺便研究一下怎么做数据容器的备份还原,以下是我的操作过程记录。
首先pull images
sudo docker pull postgressudo docker pull cptactionhank/atlassian-confluence
创建postgres数据容器
sudo docker run --name dbdata postgres echo "Data-only container for postgres"
创建confluence数据容器
sudo docker run --name cfdata cfdatacptactionhank/atlassian-confluence echo "Data-only container for confluence"
创建postgres容器,注意修改password
sudo docker run -d --name postgresdb -p 5432:5432 --volumes-from dbdata -e POSTGRES_PASSWORD=123456 postgres
创建confluence容器
sudo docker run -d --name confluence -p 8090:8090 --volumes-from cfdata --link postgresdb:db --user root:root cptactionhank/atlassian-confluence
访问http://host-to-server:8090/ 页面,出现初始化配置信息。还没激活的产品要求选择试用或者输入产品秘钥破解。
强烈建议使用正版,破解过程可参考:
如果需要备份数据库与confluence的数据卷内容
备份数据容器操作,该操作在当前目录生成 postgres-backup.tar 和 confluence-backup.tar
/var/lib/postgresql/data 是postgres docker 镜像中指定的volume数据位置,也是其他容器映射到共享数据容器中的数据内容,这个可以用docker inspect postgres查看。/var/atlassian/confluence 也是同样的道理
sudo docker run --rm --volumes-from dbdata -v $(pwd):/backup postgres tar cvf /backup/postgres-backup.tar /var/lib/postgresql/datasudo docker run --rm --volumes-from cfdata -v $(pwd):/backup cptactionhank/atlassian-confluence tar cvf /backup/confluence-backup.tar /var/atlassian/confluence
还原数据容器 把当前目录中的postgres-backup.tar 和 confluence-backup.tar解压到数据容器
sudo docker run --volumes-from dbdata -v $(pwd):/backup postgres tar xvf /backup/postgres-backup.tarsudo docker run --volumes-from cfdata -v $(pwd):/backup cptactionhank/atlassian-confluence tar xvf /backup/confluence-backup.tar
#注意,如果是centos7,备份与还原操作会有安全模块禁止修改container内部文件,会显示permisstion denied,这时候需要临时关闭该模块,操作备份后再启动
关闭
su -c "setenforce 0"
启动
su -c "setenforce 1"