使用Docker进行模型部署

这篇具有很好参考价值的文章主要介绍了使用Docker进行模型部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、常见的模型部署场景

  1. 实时的、小数据量的预测应用
    部署方式:采用python-httpserve应用部署(如flask, fastApi, django),缺点是可能需要跨环境,从Java跨到Python环境
  2. 实时的、大数据量的预测应用
    部署方式:将训练好的模型转换成PMML,把模型封装成一个类,用Java调用这个类来预测
  3. 离线预测、D+1天的预测
    部署方式:可以简单的使用Python脚本进行预测,使用shell的crontab做定时调用

⭐️多个项目部署到一个服务器上的部署方式:使用Docker将项目封装在独立的容器中

补充:Linux配置

由于大部分服务器使用Linux做服务器,所以这里补充一下Linux虚拟机安装
Linux虚拟机安装(Ubuntu 20)

配置常见问题:

  1. 【解决】vmware虚拟机安装时提示 Intel VT-x 处于禁用状态:进入BIOS打开Intel Virtualization Technology
  2. 【解决】VMWare Workstation 17报错(2784):关闭虚拟机的3D加速功能
  3. 【解决】VMWare虚拟机安装Ubuntu时页面显示不全:VMware虚拟机安装Ubuntu时页面显示不全的解决方法

二、Docker

Docker是一种开源的容器化平台,可以简化应用程序的部署和管理过程。通过使用Docker,可以将应用程序及其所有依赖项封装在一个称为容器的独立单元中。
Docker部署的优点:

  1. 轻量和快速:Docker容器是轻量级的,因为它们与宿主机共享操作系统内核。这使得容器的启动和停止非常迅速,使您的应用程序能够快速部署和扩展。
  2. 可移植性:Docker容器提供了一个一致的运行时环境,无论在哪个主机上部署,容器内的应用程序和依赖项都将以相同的方式运行。这消除了由于不同主机之间的差异而导致的部署问题,使得应用程序在不同环境中更易于迁移和部署。
  3. 隔离性和安全性:Docker使用容器来隔离应用程序和其依赖项,确保它们在相互之间和宿主机上运行时相互独立。这种隔离性提供了更高的安全性,使得即使应用程序存在漏洞或问题,也不会对宿主机或其他容器造成影响。
  4. 简化的管理和部署:Docker提供了一套强大的工具和命令行界面,使得管理和部署应用程序变得简单。您可以使用Dockerfile来定义应用程序的构建过程,使得部署过程可重复和可自动化。此外,Docker还提供了监控、日志记录和扩展等功能,帮助您更好地管理和维护应用程序。

2.1 Docker 安装

Windows

官网下载Docker Desktop:Docker Desktop for Windows
测试是否安装成功:运行命令 docker run hello-world,显示"Hello from Docker!"则代表安装成功

Linux(ubuntu 20)

使用安装脚本安装docker

  1. 首先下载脚本
$ curl -fsSL https://get.docker.com -o get-docker.sh
  1. 以root权限运行脚本
sudo sh get-docker.sh
  1. 验证安装是否成功
sudo docker run hello-world

2.2 Docker部署python项目(Windows)

建立容器

  1. 在python项目里新建一个名为Dockerfile的文件,填写创建容器的指令配置。例:
# 使用适当的基础镜像
FROM python:3.9

# 设置工作目录
WORKDIR /app

# 复制本地项目文件到容器中
COPY . /app

# 安装项目依赖库(如果有)
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


# 设置入口命令
CMD ["python", "./main.py"]
  1. 在终端里cd到python项目的位置,运行docker命令创建容器。例:
# 创建一个名为psql的容器
docker build -t psql .
  1. 在终端里使用docker命令运行项目。例:
docker run -p 9999:9999 psql

进入容器运行项目

  1. 启动容器并进入容器的交互式终端。例:
docker run -it psql bash
  1. 运行项目
python main.py

2.3 将容器打包部署到其他设备或服务器上

  1. 查询本地仓库的所有镜像
docker images
  1. 导出容器。例:
docker save <容器id> > <保存容器的路径>\<容器文件名称>.tar
  1. 将容器文件导入到其他设备或服务器的docker里(这里演示在ubuntu里加载容器)

cd到容器文件的文件夹里,打开终端,输入命令文章来源地址https://www.toymoban.com/news/detail-670712.html

sudo docker load --input <容器文件名称>.tar
  1. 打开终端,验证容器是否成功导入
  • 查询本地仓库所有镜像
sudo docker images
  • 如果看到加载的镜像没有tag和镜像名,则手动打tag:
docker tag {image_id} {image_name}:{image_tag}
  • 进入镜像
sudo docker run -it <image_name> bash
  • 运行项目
python main.py

到了这里,关于使用Docker进行模型部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Docker Swarm(集群) 和Docker Stack(堆栈)部署容器化应用

    说到集群,第一个想到的就是k8s,但docker官方也提供了集群和编排解决方案,它允许你将多个 Docker 主机连接在一起,形成一个“群集”(Swarm),并可以在这个 Swarm 上运行和管理你的服务。 与Kubernetes相比,Docker Swarm的群集管理功能相对简单,Swarm更适合于小型到中型的容器

    2024年04月25日
    浏览(35)
  • 【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全、容器部署安全

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖    Docker是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具 。这使得Docker的操作非常简单。

    2024年02月08日
    浏览(49)
  • 【Docker】在Linux使用Docker进行nacos集群部署

    目录 一、介绍 二、单个部署 三、多个部署  每篇一获 Nacos  是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos的主要功能包括: 服务发现和服务健康检查 :Nacos能够帮助您实现自动服务注册、发现和健康检查。 动态配置服务 :

    2024年01月19日
    浏览(45)
  • 使用docker安装部署elasticsearch,并持久化到容器卷

    1.拉取Elasticsearch Docker镜像 在终端中执行以下命令来从Docker Hub拉取特定版本(如8.2.0)的Elasticsearch镜像。请确保你的网络连接正常,并且Docker已经在你的机器上安装并正确配置。 2.创建挂载目录 执行以下命令在本地创建文件夹,用于持久化 Elasticsearch 的数据和配置。 如果上述文

    2024年04月08日
    浏览(50)
  • 使用VSCode的 Dev Containers 插件搭配Docker 容器进行开发环境的搭建

    需要安装插件 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers 安装Docker 这样做的好处 每一个项目可以运行一个容器,在容器内开发,相关之间node环境隔离,彻底解决本地包版本依赖关错乱问题 共用宿主机的git 配置, 如果用的是 alpine 版本的镜像,则没有

    2024年01月21日
    浏览(71)
  • 第七次作业 运维高级 docker容器进级版

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 (1)拉取相应镜像 (2)运行mysql:5.6容器 (3)运行owncloud容器 (4)查看并验证 之后在浏览器中输入ipaddress:8080 2、安装搭建私有仓库 Harbor (1)下载好harbor和docker-compose (2)上传到Linux服务器 (3)复制docker-compose并修改权限 (4)解压harbor (

    2024年02月12日
    浏览(57)
  • 使用docker部署RStudio容器并结合内网穿透实现公网访问

    RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问,从而将 RStudio IDE 的强大功能和工作效率带到基于服务器的集中式环境中。 下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免

    2024年01月19日
    浏览(49)
  • 使用 SQLStudio 进行数据库管理并通过 Docker Compose 进行部署

    在现代软件开发中,数据库管理是一个至关重要的环节。SQLStudio 是一个强大的工具,可以帮助开发人员轻松管理数据库,现在改名成SQLynx,我们用的是旧的镜像,本文还是用SQLStudio这个名称。同时,使用 Docker Compose 可以简化应用程序的部署过程,使整个开发流程更加高效和

    2024年02月11日
    浏览(38)
  • Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码)

    简介 Docker 是一个开源的容器化平台,可帮助开发者轻松地创建、部署和运行应用程序。 Docker 使开发人员能够在一个独立的容器中打包应用程序及其依赖项,这样他们就可以轻松地将应用程序移植到任何其他环境中。 使用 Docker 的主要优势: 便于部署:由于 Docker 容器可以在

    2024年02月08日
    浏览(50)
  • K8S自动化运维容器化(Docker)集群程序

    1.什么是K8S K8S全程为Kubernetes,由于K到S直接有8个字母简称为K8S。 版本:目前一般是1.18~1.2.0,后续可能会到1.24-1.26,1.24版本后丢弃了docker(如需要使用需要第三方插件配合),目前最新版本是1.27 官网:https://kubernetes.io GitHub:GitHub - kubernetes/kubernetes: Production-Grade Container Schedul

    2024年02月10日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包