You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Laravel Sail的Docker化应用迁移至另一台计算机?

完整迁移Laravel Sail应用到新机器的可行方案

当然可以实现,核心是把Laravel应用代码、MySQL镜像、MySQL数据这三部分打包迁移,新机器上按步骤恢复即可。以下是具体操作:

一、打包Laravel应用文件

直接把你的Laravel项目根目录打包,建议排除不需要的依赖目录来缩小体积:

tar -czf laravel-app.tar.gz /path/to/your/laravel-project \
  --exclude='vendor' \
  --exclude='node_modules' \
  --exclude='storage/logs'
  • 解释:vendor和node_modules可以在新机器上重新安装,日志文件没必要迁移。如果嫌后续安装麻烦,也可以不排除这些目录,直接打包整个项目。

二、处理MySQL的镜像与数据

1. 导出MySQL数据库数据

先找到你的MySQL容器名(用docker ps查看,一般是{你的项目名}-mysql-1),然后进入容器:

sail exec mysql bash

导出数据库(假设你的Laravel数据库名为laravel):

mysqldump -u root -p laravel > /var/lib/mysql/laravel-db.sql

输入MySQL密码(默认是password,改了就用你的自定义密码),然后输入exit退出容器。

把导出的SQL文件复制到本地项目目录:

docker cp {你的容器名}:/var/lib/mysql/laravel-db.sql ./

2. 导出MySQL镜像为本地文件

查看当前使用的MySQL镜像版本:

docker images | grep mysql

比如Laravel Sail常用的是mysql:8.0,然后导出镜像:

docker save -o mysql-sail-image.tar mysql:8.0

三、新机器上恢复并启动

1. 传输文件

把laravel-app.tar.gz、laravel-db.sql、mysql-sail-image.tar这三个文件传到新机器(用scp、U盘或其他方式都行)。

2. 导入MySQL镜像

在新机器上加载镜像:

docker load -i mysql-sail-image.tar

3. 解压并配置Laravel应用

# 解压应用文件到目标目录
tar -xzf laravel-app.tar.gz -C /path/to/your/new/project
cd /path/to/your/new/project

# 复制.env配置文件,确保数据库参数和原机器一致
cp .env.example .env
# 这里可以编辑.env,确认DB_DATABASE、DB_USERNAME、DB_PASSWORD和之前的配置匹配

# 安装Composer依赖(如果之前排除了vendor目录)
composer install

# 启动Sail容器
./vendor/bin/sail up -d

4. 导入MySQL数据

先把SQL文件复制到MySQL容器内:

./vendor/bin/sail cp ./laravel-db.sql mysql:/var/lib/mysql/

然后进入容器导入数据:

./vendor/bin/sail exec mysql bash
# 创建数据库(如果Sail启动时没自动创建的话)
mysql -u root -p -e "CREATE DATABASE laravel;"
# 导入数据
mysql -u root -p laravel < /var/lib/mysql/laravel-db.sql

完成后输入exit退出容器即可。

可选:直接迁移整个MySQL容器(快捷但灵活度低)

如果不想分开处理镜像和数据,也可以直接打包整个运行中的MySQL容器:

docker export {你的容器名} > mysql-container.tar

新机器上导入并创建镜像:

docker import mysql-container.tar mysql-sail-custom

然后在docker-compose.yml里修改MySQL镜像为mysql-sail-custom,启动即可。不过这种方式可能会携带原机器的容器配置,不如分开镜像和数据的方式稳定。

为什么不直接迁移整个容器?

Docker的核心价值是镜像的可复用性,容器是镜像的运行实例,依赖原机器的存储、网络等环境,直接迁移容器容易出现兼容性问题。而迁移镜像+应用代码+数据的方式,既能保证环境一致,又能在新机器上灵活调整配置,是更稳妥的方案。

内容的提问来源于stack exchange,提问作者Tamás László

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:30:22