一、打包镜像文件
1、制作镜像(制作本地windows上传到服务器的项目为镜像)
1.1、打开cmd,输入以下命令
从本地打包,把ppt_generation文件夹,打包成tar包:ppt_generation.tar.gz
tar -czvf ppt_generation.tar.gz ppt_generation
1.2、上传压缩包到服务器
上传tar.gz文件到有权限的目录下
命令格式:
scp 本地文件路径 用户名@服务器IP:服务器目标路径
scp ppt_generation.tar.gz ubuntu@175.178.117.184:~/
移动tar.gz文件到指定目录下(可跳过)
sudo mv ~/ppt_generation.tar.gz /opt/ppt/
1.3、在服务器上解压
tar -zxvf ppt_generation.tar.gz
1.4、做好准备工作:
在执行构建命令之前,必须确保Dockerfile、 pyproject.toml 和 uv.lock 这些文件已经存在于项目目录中。
pyproject.toml: 定义了项目的元数据和依赖。
uv.lock: 锁定了所有依赖的具体版本,确保环境的一致性。
如果你的项目还没有这两个文件,你需要先在本地使用 uv 命令生成它们,然后再连同 Dockerfile 一起上传到服务器。
如果缺少 uv.lock 文件,构建过程会直接报错失败。
1.5、cd到解压的目录里面,开始构建镜像文件(不带缓存)
docker build --no-cache -t ppt_generation:v1.0 .
2、查看镜像地址所在(被打包后镜像被docker接管,并存放在docker的目录下)
docker images
3、制作tar包
打包指定的镜像文件为tar包
docker save:这是 Docker 用于打包镜像的核心命令。
-o:是 –output 的缩写,表示将打包好的内容输出并保存到一个指定的文件中。
第一个 xxx.tar:是你希望生成的压缩包的文件名(例如 my-image.tar)。
这里的xxx.tar文件,不能出现特殊符号例如冒号:等
第二个 xxx:是你本地想要打包的那个 Docker 镜像的名称。通常需要带上标签,比如 nginx:latest
作用:
使用 docker save 打包出来的 .tar 文件,保留了该镜像所有的历史层级、元数据和配置信息。
它的主要应用场景包括:
离线迁移:在没有外网的服务器(如内网、隔离的生产环境)上部署应用。你可以在有网的电脑上把镜像打包,通过 U 盘或内网传给目标服务器。
备份与分享:将制作好的镜像备份起来,或者直接发给同事使用,保证大家的环境完全一致。
docker save -o xxx.tar xxx
二、导出镜像文件到本地保存
在windows本地cmd窗口里执行以下命令
scp root@ipv4地址:/opt/xxx.tar D:\xxx\xxx\docker_images\
三、镜像包文件上传复用
从本地windows系统打开cmd,上传指定镜像
scp D:\xxx\xxx\docker_images\xxx.tar root@ipv4地址:/opt/
四、加载镜像
把之前通过 docker save 打包好的 Docker 镜像“压缩包”,完整地解压并还原到你的目标服务器的 Docker 环境中。
docker load -i xxx.tar