bookstack 迁移 第一步:# docker ps |grep bookstack 查找bookstack启动的容器
第二步:打标签构建镜像 docker commit docker-bookstack_mysql_1 docker.io/mysql #相互依赖的数据库容器镜像 docker commit docker-bookstack_bookstack_1 bookstack #bookstack镜像
第三步,保存镜像 docker save docker.io/mysql >/tmp/docker.io/mysql.tar #保存mysql镜像 docker save bookstack >/tmp/bookstack.tar #保存bookstack
第四步,查找volume目录 A. 通过docker volume ls |grep book* 命令查找卷标
B. 通过 docker inspect docker-bookstack_mysql_1 命令进入容器挂载volume位置。
进入cd /var/lib/docker/volumes/ 目录中,对bookstack目录行打包 tar zcvf bootst.tar.gz /var/lib/docker/volumes/*
完成上述步骤,然后把mysql.tar,bookstack.tar, bootst.tar.gz拷贝到新有服务器上,进行镜像导入及文件解压 第五步,导入镜像和解压数据 docker load -i mysql.tar #导入mysql镜像 docker load -i bookstack.tar # 导入bookstack镜像
第六步,解压数据文件boot.tar.gz 目录自己设置。我放在/bantdata/bookstack tar xf volumes.tar.gz
第七步,修改boot.yml文件 [root@bantcd bookstack]# cat book.yml
version: '2'
services:
mysql:
image: mysql:5.7.30 #修改为自己导入镜像名
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=secret
volumes:
- /bantdata/bookstack/volumes/docker-bookstack_mysql-data/_data:/var/lib/mysql #数据文件位置
- /bantdata/bookstack/volumes/bookstack_mysql-data/_data:/etc/mysql/conf.d #数据库配置文件
bookstack:
image: bookstack:latest #修改为自己导入镜像名
depends_on:
- mysql
environment:
- DB_HOST=mysql:3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=secret
volumes:
- /bantdata/bookstack/volumes/docker-bookstack_uploads/_data:/var/www/bookstack/public/uploads #bookstackupload文件目录
- /bantdata/bookstack/volumes/docker-bookstack_storage-uploads/_data:/var/www/bookstack/storage/uploads #bookstack的storage文件
ports:
- "8088:8080" #暴露端口,根据自己主机设置
最后一步: docker-compose启动 docker-compose -f book.yml up #启动容器 检查有无报错,然后在重新启动加上 -d
#备注:在生产过程不建议迁移,在开始部署的时候,建议配置越高越好,因为当人员大量访问和读写,数据库会产生大量的数据。避免因为内存或者CPU不足引起数据无法正常保存而丢失。