
如何把大模型应用容器化部署cgft-llm Docker系列完全指南从镜像、容器到docker-compose编排【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型LLM开发的开源资源。它提供代码、文档和视频教程帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llmcgft-llm 是一个学习大语言模型LLM开发的开源资源仓库其中的 Docker 系列教程带你从零开始掌握大模型应用容器化部署的完整流程镜像、容器、Dockerfile、卷、网络直到用 docker-compose 一键编排多个服务。本指南面向新手几乎不需要代码基础读完即可独立完成一个 LLM 应用的容器化部署。为什么大模型应用需要 Docker 容器化部署大模型应用通常依赖 Python 环境、深度学习框架、向量数据库、Web 服务Flask/Streamlit等大量组件。直接手动安装经常遇到环境不一致开发机能跑服务器上版本冲突依赖地狱pip install装出来的包互相打架部署慢换一台机器就要重新折腾一遍环境Docker 的思路是把应用连同它的全部依赖打包成一个镜像像集装箱一样在任何机器上原样运行。一次构建处处部署——这正是 LLM 应用从 Demo 走向生产的关键一步。快速上手先搞懂三大核心概念概念类比作用镜像 Image装修好的样板间图纸只读模板包含代码依赖运行环境容器 Container按图纸盖出来的房子镜像的运行实例可启停Dockerfile装修说明书用指令描述如何构建镜像镜像的常用操作搜索、拉取、构建、打标签在 04-module-specials/docker/docs/1-images镜像.md 中有完整的命令速查。上图就是一个典型的大模型应用RAG 检索增强问答——像这样由多个组件组成的应用正是容器化部署的最佳对象。把 LLM 应用打包成镜像看懂 Dockerfile 常用指令仓库提供了一个可直接运行的演示项目 04-module-specials/docker/docker-demo/其中 app.py 是一个 Flask 小应用返回 Hello, Flask!对应的 Dockerfile 就是本教程的样板。一份面向 LLM 应用的 Dockerfile通常只需要理解这 6 条指令FROM—— 指定基础镜像例如python:3.10-slimslim 版本体积小适合生产WORKDIR—— 设置工作目录后续指令都在该目录执行COPY—— 把应用代码复制进镜像RUN—— 构建时安装依赖例如pip install flaskEXPOSE—— 声明服务端口如 5000CMD—— 容器启动时执行的命令例如python app.py完整的指令速查表含ENV、VOLUME、HEALTHCHECK等进阶指令见 04-module-specials/docker/docs/3-Dockerfile.md。构建与运行只需两条命令docker build -t my-llm-app . # 构建镜像 docker run -d -p 5000:5000 my-llm-app # 启动容器映射端口 提示-p 5000:5000表示把宿主机的 5000 端口映射到容器 5000 端口这样浏览器访问http://localhost:5000就能用上你的 LLM 应用。容器日常管理这几条命令够用 90%容器启动之后你经常需要查看状态、看日志、进入容器排查问题。核心命令一张表搞定详细说明见 04-module-specials/docker/docs/2-container容器.md命令用途docker ps查看正在运行的容器docker logs -f 容器名实时查看日志排查 LLM 应用报错必备docker stop / start / restart 容器名停止 / 启动 / 重启容器docker exec -it 容器名 bash进入容器内部执行命令docker stats实时查看 CPU、内存占用docker rm 容器名删除已停止的容器数据持久化与网络两个容易踩坑的点数据会丢容器是临时的删了容器里面的数据就没了。解决方法是卷volume把宿主机目录或命名卷挂载进容器例如docker run -v my-data:/data这样大模型应用生成的对话记录、向量库文件就能持久保存。命令速查见 04-module-specials/docker/docs/4-volume.md。容器之间如何通信Docker 默认为每个容器提供独立的 bridge 网络同一网络内的容器可以直接用服务名互相访问如http://nginx。bridge、host、overlay 等网络模式的选择建议见 04-module-specials/docker/docs/5-network.md。另外如果你的机器需要代理才能拉取镜像04-module-specials/docker/docs/7-proxy代理.md 给出了全局与单容器两种代理配置方案。像这样的虚拟人 / 对话类大模型应用容器化部署后可以通过端口映射快速对外提供服务。docker-compose 多服务编排一条命令启动整套应用真实的大模型应用往往是多组件的Web 服务 反向代理 向量数据库……逐个docker run太繁琐。Docker Compose用一个 YAML 文件定义全部服务一条命令启动整套应用。仓库提供了完整示例 04-module-specials/docker/docker-compose-demo/核心编排文件是 docker-compose.yml结构非常直观nginx 服务使用现成镜像nginx:latest将容器 80 端口映射到宿主机 8080python-app 服务从 python-app/ 目录现场构建镜像并通过depends_on声明依赖 nginxmy-network 网络两个服务加入同一个 bridge 网络可以互相访问其中 python-app/app.py 每 3 秒请求一次http://nginx——注意它用的就是服务名而不是 IP这就是 Compose 网络的威力。日常编排只需记住 4 条命令完整命令清单见 04-module-specials/docker/docs/6-docker-compose.mddocker-compose up -d # 构建并后台启动全部服务 docker-compose logs -f # 实时查看全部服务日志 docker-compose ps # 查看服务运行状态 docker-compose down # 停止并删除服务⚠️ 注意docker-compose down --volumes会连同数据卷一起删除生产环境慎用。学习路径与资源清单按下面顺序学习循序渐进掌握大模型应用容器化部署顺序主题资料1镜像 Imagedocs/1-images镜像.md2容器 Containerdocs/2-container容器.md3Dockerfiledocs/3-Dockerfile.md4卷 Volumedocs/4-volume.md5网络 Networkdocs/5-network.md6Docker Composedocs/6-docker-compose.md7代理 Proxydocs/7-proxy代理.md8综合示例04-module-specials/docker/README.md动手建议先把docker-demo的 Flask 应用跑起来再把你的 LLM 应用如仓库 02-llm-core/function-calling/ 中的 Function Calling 演示按同样思路写一份 Dockerfile 打包最后用 Compose 编排成完整服务。走完这三步你就具备了大模型应用容器化部署的完整能力。【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型LLM开发的开源资源。它提供代码、文档和视频教程帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考