Jupyter AI

Docker 打包与分发完全指南

📅发表日期: 2025-05-06

🏷️分类: AI消息

👁️阅读次数: 0

🐳 Docker 打包与分发完全指南

本指南整理了使用 Docker 构建、打包、导出、分发镜像的完整流程,特别适用于 将 AI 项目打包发给客户部署 的场景。


🧠 一、Docker 打包的基本原理

Docker 镜像是一种可移植的运行环境快照,构建流程遵循:

  1. 读取 Dockerfile,按步骤逐层构建镜像
  2. 每一步生成一层“快照”(称为镜像层)
  3. 所有层组合起来,成为最终镜像,具有唯一 镜像ID
  4. 可通过 docker run 运行为容器,拥有隔离的网络、文件系统、环境

构建完成后,可使用 docker save 将镜像导出为 .tar 文件,并通过 docker load 恢复。


📷 镜像层快照机制通俗解释

Docker 构建过程就像是录制“做菜视频”

  • 每条 Dockerfile 指令都会生成一个“快照层”,记录了这一层对文件系统的改动
  • 所有快照层按顺序叠加,形成最终可运行镜像
  • Docker 可以缓存未改动的层,从而加速构建

🎯 示例:Dockerfile 快照层叠加示意

FROM python:3.10-slim
COPY app.py /app/
RUN pip install flask
RUN echo "Hello" > /hello.txt

构建时生成的层结构如下:

层编号 Dockerfile 指令 内容说明
第1层 FROM Python 基础系统
第2层 COPY app.py 拷贝你的代码文件
第3层 RUN pip install 安装 Flask,新增依赖
第4层 RUN echo 写入 hello.txt 文件

你可以使用以下命令查看构建层:

docker history deepseekmine:0.6.1

🧱 二、镜像构建:开发环境常用

docker build -t deepseekmine:0.6.1 .
参数 含义
-t 指定镜像名称与标签,如 deepseekmine:0.6.1
. 当前目录(需包含 Dockerfile)

若希望镜像可在 Windows 等 amd64 平台使用,请在 Mac 上添加平台参数:

docker build --platform=linux/amd64 -t deepseekmine:0.6.1 .

📦 三、导出镜像供客户部署

导出镜像为 .tar 文件:

docker save -o deepseekmine-0.6.1.tar deepseekmine:0.6.1

其他依赖镜像(如 node、python、meilisearch)也建议提前导出:

docker pull getmeili/meilisearch:v1.6
docker save -o meilisearch-v1.6.tar getmeili/meilisearch:v1.6

建议统一打包为 zip 或 tar.gz 分发,并附带 docker-compose.yml


🚀 四、启动服务(推荐使用 docker-compose)

使用 docker-compose.yml 可一次性启动多个容器:

docker-compose up -d

如需停止并清理:

docker-compose down

注意: 仅运行 deepseekmine 镜像无法正常使用,因为依赖 MeiliSearch 等服务。


🔍 五、容器运维常用命令

查看日志

docker logs -f deepseekmine

进入容器内部

docker exec -it deepseekmine bash

查看镜像与容器

docker ps           # 正在运行的容器
docker ps -a        # 所有容器
docker images       # 本地所有镜像

停止 & 删除容器

docker stop deepseekmine
docker rm deepseekmine

删除镜像

docker rmi deepseekmine:0.6.1

清理系统中未使用资源

docker system prune -a --volumes -f

📋 六、完整分发结构建议(发给客户)

📦 deepseekmine-install.zip
├── deepseekmine-0.6.1.tar
├── node-20.tar
├── python-3.10-slim.tar
├── meilisearch-v1.6.tar
├── docker-compose.yml
└── README.md

🧪 七、Mac 上构建,Windows 上部署的命令组合

构建适用于 Windows 的镜像(Mac 上)

docker build --platform=linux/amd64 -t deepseekmine:latest .

导出镜像为 .tar

docker save -o deepseekmine.tar deepseekmine:latest

在 Windows 上导入镜像

docker load -i deepseekmine.tar

启动服务容器

docker run -d --name deepseekmine -p 3000:3000 -p 5001:5001 deepseekmine:latest

✅ 建议总结

  • ✅ 总是使用 docker-compose.yml 统一管理启动逻辑
  • ✅ 给镜像明确版本号,便于管理多个版本
  • ✅ 为客户预打包所有依赖镜像,减少国内拉取失败风险
  • ✅ 了解镜像分层原理,有助于构建更小、更快、更安全的镜像

💬 评论

暂无评论

🧠AI 最新技术 (滚动鼠标查看)