兰空图床迁移

源服务器端

迁移容器

标记并上传容器

  1. 登录到Docker Hub: 如果还没有Docker Hub帐户,在Docker Hub上创建一个。然后,使用以下命令登录到Docker Hub:

    docker login

    输入Docker Hub用户名和密码。

  2. 重新标记镜像: 需要为镜像重新标记以包括你的Docker Hub用户名或组织名称。使用以下命令:

    docker tag your-image-name:tag your-dockerhub-username/your-image-name:tag

    your-image-name:tag 替换为你之前创建的镜像名称和标签,将 your-dockerhub-username 替换为你的Docker Hub用户名。

  3. 上传镜像: 使用以下命令将标记的镜像上传到Docker Hub:

    docker push your-dockerhub-username/your-image-name:tag

    这会将镜像上传到你的Docker Hub帐户中。请确保您已登录到正确的帐户。

  4. 验证镜像: 登录到Docker Hub网站,导航到你的帐户,你应该能够在那里看到刚刚上传的镜像。

现在,你的Docker镜像已经上传到Docker Hub。其他用户可以使用以下命令来从Docker Hub拉取你的镜像:

docker pull your-dockerhub-username/your-image-name:tag

确保将 your-dockerhub-username/your-image-name:tag 替换为您实际的镜像名称和标签。

产看容器数据挂载目录并迁移数据

使用命令

docker inspect <containerId> > config.json 

查看容器消息,会输出到当前文件夹下的config.json 里面。查看config.json后找到如下结构

image-20231124170126091

其中

  • Source: “/root/lsky/web” 是主机上的路径。

  • Destination: “/var/www/html” 是容器内的路径。

    即容器内的/var/www/html挂载到了服务器上的/root/lsky/web目录上,此时找到此目录并将其打包下载至目标服务器中

目标服务器端

拉取并创建docker容器

目标服务器创建和源服务器一样的挂载目录,将源服务器目录的文件移入新建的目录。目标服务器将上传至DockerHub的镜像拉取下来后运行。运行时挂载目录为

image-20231124171116854

参考我的,运行命令可以为

docker run -d \
    --name lsky-pro \
    --restart unless-stopped \
    -p 8089:8089 \
    -v $PWD/lsky/web:/var/www/html \ ##绑定运行目录
    -e WEB_PORT=8089 \
    halcyonazure/lsky-pro-docker:latest

根据自己情况进行修改。

还原原服务数据库数据

使用navicat等工具新建一个数据库,执行sql脚本,得到如下数据库。

image-20231124170859489

进入下载下来的容器挂载目录文件,删除install.lock文件。此时进入目标服务器的兰空图床网页会自动触发安装程序,正常安装完成后再执行一遍数据库脚本还原成功数据库即可。还原成功后进入数据库修改

image-20231124172314484

修改configs字段下的数据。将其中的url改为目标服务器的url。

image-20231124172831399

此时所有文件可正常访问。