docker打包&加载镜像文件

内容纲要

一、打包镜像文件

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

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部