docker bookstack 迁移

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker bookstack 迁移相关的知识,希望对你有一定的参考价值。

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

以上是关于docker bookstack 迁移的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Laravel 5 BookStack全新安装不加载任何外部文件

EF6 自定义迁移表名

迁移到 AndroidX 后,findFragmentById 为片段返回 null

docker如何迁移数据目录

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段