张墨轩的技术宅

不忘初心,方得始终

« 上一篇下一篇 »

xwiki-docker迁移全过程记录

这里整理下我之前实验室维基xwiki-docker迁移全过程:

xwiki包含两个docker容器:

web服务容器名: xwiki-mysql-tomcat-web, 对应的数据卷名: xwiki_xwiki-data

mysql服务容器名: xwiki-mysql-db, 对应的数据卷名: xwiki_mysql-data

mkdir backup-docker 创建备份目录
cd backup-docker    进入备份目录成为当前目录

将容器和数据卷的细节信息保存下来,方便以后查看

sudo docker inspect xwiki-mysql-tomcat-web > xwiki-mysql-tomcat-web.txt
sudo docker inspect xwiki-mysql-db > xwiki-mysql-db.txt
sudo docker volume inspect xwiki_xwiki-data > xwiki_xwiki-data.txt
sudo docker volume inspect xwiki_mysql-data > xwiki_mysql-data.txt

将两容器更新到新镜像

sudo docker commit 21787172b4b2 xwiki:my
sudo docker commit 5af1860d31f5 mysql:my

将两新镜像保存为tar文件,这样就可以拷贝到新服务器上

sudo docker save -o xwiki.tar xwiki:my
sudo docker save -o mysql.tar mysql:my

利用busybox镜像运行一个容器,利用--volumes-from参数可以共享挂载web服务对应的数据卷,利用-it参数可以进到容器里面,

手动查看一下数据卷内容是否正确,容器内路径为:/usr/local/xwiki,其中--rm参数意味着这个容器运行完后自动删除,相当于临时容器

sudo docker run --name temp1 -it --volumes-from xwiki-mysql-tomcat-web --rm busybox

备份数据卷为tar文件,参数-v $(pwd):/backup意思是将本机当前目录映射到容器内部的/backup目录, 'tar cvf /backup/xwiki_xwiki-data.tar /usr/local/xwiki'是在容器内部执行的命令,

数据卷对应的容器内部路径为/usr/local/xwiki,宿主机当前目录对应的容器内部路径为/backup,所以命令在容器内部执行完后,相当于把数据卷备份到了宿主机当前目录下的tar文件里面

sudo docker run --name temp1 --volumes-from xwiki-mysql-tomcat-web --rm -v $(pwd):/backup busybox tar cvf /backup/xwiki_xwiki-data.tar /usr/local/xwiki

同上,只不过操作的是mysql服务对应的数据卷

sudo docker run --name temp1 -it --volumes-from xwiki-mysql-db --rm busybox

同上,只不过操作的是mysql服务对应的数据卷

sudo docker run --name temp1 --volumes-from xwiki-mysql-db --rm -v $(pwd):/backup busybox tar cvf /backup/xwiki-mysql-db.tar /var/lib/mysql

-----------------------------------------------------------------------------------------

以上为备份全过程,接下来在新机器上进行还原:

利用一个临时容器创建名称为xwiki_xwiki-data的数据卷,同时进到容器内部查看对应目录是否正确

sudo docker run -v xwiki_xwiki-data:/usr/local/xwiki --name store_xwiki -it --rm busybox

利用一个临时容器将tar文件里面的数据还原到上一步创建的数据卷中

sudo docker run --volumes-from store_xwiki -v $(pwd):/backup --rm busybox tar xvf /backup/xwiki_xwiki-data.tar

同上,只不过操作的是mysql服务对应的数据卷

sudo docker run -v xwiki_mysql-data:/var/lib/mysql --name store_mysql -it --rm busybox

同上,只不过操作的是mysql服务对应的数据卷

sudo docker run --volumes-from store_mysql -v $(pwd):/backup --rm busybox tar xvf /backup/xwiki-mysql-db.tar

还原web服务镜像

sudo docker load -i xwiki.tar

还原mysql服务镜像

sudo docker load -i mysql.tar

到此,镜像和数据卷都已经还原,利用docker-compose.yml文件启动容器

cd xwiki
docker-compose up -d


发表留言:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

搜索
网站分类
Tags列表
网站关联
小蚁直递
最近发表

Powered By Z-Blog 2.2 Prism Build 140101

Copyright phonegap.me Rights Reserved.