算法模型部署- Docker

2023-11-03

一、什么是docker

Docker是一个虚拟环境容器,可以将你本地开发开发环境、代码、配置文件等一并打包到一个容器中,然后发布到任意平台、部署到你想部署到的任意服务器中。

 

二、模型部署为什么要使用docker

假设将本地项目部署到服务器中,通常会由于环境不同、依赖库版本不同等问题,出现项目不能正常运行的状况。为了保证项目能够正常执行,服务器环境必须要和本机项目环境一模一样,如果只是一台服务器还好,按照本地环境重新部署一遍就好了,但如果有多台服务器怎么办?

这时候就可以使用docker,将本地项目代码及依赖环境一起打包到一个容器中,然后部署到生产环境中。

 

三、Docker三个基本概念

镜像:包含环境或服务的一个模板,例如Ubuntu系统。

容器:镜像与容器的关系就像类和实例一样,镜像运行起来就是一个容器。

仓库:存放镜像的场所,最大的公开库是Docker Hub。

 

四、Docker部署

1.获取镜像

docker pull ubuntu  

docker pull centos 

docker images #查看已有的镜像

 

2.启动容器

简单启动容器

docker run hello-world 
docker run -it hello-world #-it:可视化展示 

启动时命名 

但这种方式创建的docker容器会自动生成一个随机的容器名称,没有任何规律非常不好记,显然不是我们想要的,所以我们可以在创建容器的时候指定容器名称,命令如下: 

docker run --name [容器名字] -it [镜像名] /bin/bash
如:
docker run --name Test -it centos /bin/bash

启动一个已存在的容器

docker start 【容器ID】

如:docker start a24d00b1a793

可视化启动

直接在docker客户端启动对应容器即可

 

3.为ubuntu镜像安装python3.8环境

apt-get update

apt-get install python3

apt-get install python3-pip #安装pip

卸载python3.8

apt-get remove python3.8  #卸载软件

apt-get autoremove python3.8  #卸载软件并删除依赖

将python3软连接为python 

ln -s /usr/bin/python3.8 /usr/bin/python 

ln -s /usr/bin/pip3 /usr/bin/pip

4.为centos镜像安装python3.8环境

yum install python3

卸载python3

yum remove python3

 

5.将文件上传到刚刚创建好的docker镜像

打开本地终端,输入以下命令,将文件上传到镜像 

docker cp [本地文件路径]  [目标容器名称]:[容器中目标文件夹路径]


 

综上,一个包含项目的本地docker镜像就已经做好了,下一步就是将本地docker镜像部署到服务器中。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法模型部署- Docker 的相关文章

  • 添加图例到散点图

    这个问题已经被问到了 但我想找到一个更清晰的解决方案 给定 X 是 100x2 数据 标签是标签向量 从 1 到 9 我绘制散点图如下 pl scatter X 0 X 1 c labels pl show 如何仅用一行代码添加图例来解释颜
  • 在 Python 中打开 Alteryx .yxdb 文件?

    有没有办法将 yxdb Alteryx 数据库文件 导入到 Pandas Python 中 而不使用 Alteryx 作为中间人 简短的回答是否定的 目前还不行 更长的答案 yxdb 支持的原始 C 是可以在 github 上找到 http
  • Python - 对象 MagicMock 不能在“await”表达式中使用

    当我尝试使用 MagicMock 在单元测试中模拟异步函数时 出现以下异常 类型错误 对象 MagicMock 不能在 await 表达式中使用 示例代码如下 source code class Service async def comp
  • 使用输入按钮处理网站上的分页

    试图使用硒抓取这个网站 我的代码可以工作 但目前它只抓取第一页 该页面使用输入按钮作为浏览页面的一种方式 因此我想逐个单击每个按钮 但它不起作用 有没有人有任何其他方法来处理此类分页的导航 import requests from sele
  • UnicodeDecodeError:“charmap”编解码器|安装 pip python-stdnum==1.8 时出错

    我对编程还很陌生 所以请耐心等待 当我为正在使用的模块安装一些必需的软件包时 我无法安装python stdnum 1 8 我收到以下错误消息 File C Users 59996 AppData Local Programs Python
  • 从 docker 中的脚本创建 SQL Server 数据库

    我希望这是一个简单的问题 我在任何地方都找不到任何东西 如何在Microsoft SQL Server Docker容器 Dockerfile 我正在看以下内容Dockerfile FROM microsoft mssql server w
  • Pandas 将 NULL 读取为 NaN 浮点数而不是 str [重复]

    这个问题在这里已经有答案了 给定文件 cat test csv a b c NULL d e f g h i j k l m n 其中第三列被视为str 当我对列执行字符串函数时 pandas已阅读NULLstr 作为一个NaN float
  • Python 字典不按顺序排列

    我创建了一个字母表字典 其值从0开始 并根据单词文件增加一定的量 我对最初的字典进行了硬编码 我希望它保持按字母顺序排列 但事实并非如此 我希望它按字母顺序返回字典 基本上与初始字典保持相同 我怎样才能保持秩序 from wordData
  • .m2 的 Docker 缓存在本地不起作用

    考虑这个 gitlab ci yml variables MAVEN OPTS Dmaven repo local root m2 repository cache key M2 paths root m2 repository 当直接在
  • 减少每日状态表以仅包含状态更改

    我有一个包含 10 万以上用户的大型每日状态表 5 7 亿行 目前它位于 MySQL 或 CSV 中 该表包含三列 user id status 和 date 理想情况下 我希望将表缩减为一个新表 其中包含每个状态期间的 user id s
  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • Python OO程序结构规划

    我是 OOP 的初学者 我想创建一个包含三个类 A B 和 C 的程序 该类的每个实例都由一组特征 Achar1 Achar2 等定义 该程序应该创建uses由 A 元素 B 元素和 C 元素以及开始日期和结束日期组成 A 和 B 都有子类
  • 在 pandas 中展开列表列时,是否有一种Python式的方法来添加枚举列?

    考虑以下DataFrame gt gt gt df pd DataFrame A 1 2 3 B abc def ghi apply A int B list gt gt gt df A B 0 1 a b c 1 2 d e f 2 3
  • 将误差线添加到 3D 绘图

    我找不到在 matplotlib 的 3D 散点图中绘制误差条的方法 基本上 对于以下代码段 from mpl toolkits mplot3d import axes3d import matplotlib pyplot as plt f
  • 在此异步设置中,我在哪里捕获 KeyboardInterrupt 异常

    我正在开发一个使用ccxt异步库 它要求通过显式调用该类的资源来释放某个类使用的所有资源 close 协程 我想退出程序ctrl c并等待异常中的关闭协程 然而 它永远不会被等待 该应用程序由模块组成harvesters strategie
  • 在硬件级别模拟按键 - Windows

    我正在寻找一种语言或库 使我能够在最大可能的水平上模拟击键 而无需实际按下按键 我对击键级别的具体衡量标准是 当我的计算机已经运行按键侦听器 例如鼠标键和粘滞键 时 它是否会产生与物理按键相同的输出 我尝试过很多击键模拟的方法 java A
  • API 调用时出现 UnicodeEncodeError (json)

    我正在尝试打印此 API 调用的结果 但收到 UnicodeEncodeError 可能是超级菜鸟问题 但非常感谢任何帮助 import http client import json api key hidden connection h
  • Python 和 Visual Studio Code - 如何在编辑器中运行特定文件?

    我正在使用 Visual Studio Code 和 Python 编写一个小型应用程序 我的应用程序有两个文件 Main py and MyCustomClass py Main py是应用程序的入口点 MyCustomClass py包
  • 从 Python 脚本创建可执行文件,同时获取较小的输出大小

    我的问题可能已经在某个地方得到了解答 但我仍然找不到直接的答案 我想从 python 代码创建一个独立的可执行文件 我已经尝试过很多解决方案 例如py2exe pyinstaller等等 但我的问题是输出文件大小很大 例如 在pyinsta

随机推荐

  • ChatGPT底层原理及教程

    一 发展历史 1 什么是ChatGPT ChatGPT 美国OpenAI研发的聊天机器人程序 于2022年11月30日发布 ChatGPT是人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话 还能根据聊天的上下文进
  • vmos切换安卓版本_安卓之中还能运行安卓!神奇的安卓虚拟机App

    PC上的虚拟机大家玩得多了 手机上的虚拟机不知道大家玩过没 PC上装了虚拟机后 等于操作系统中多了另一个系统 可以在虚拟机的系统中安装各类软件 和真机互不干扰 而很多安卓玩家不知道的是 其实在安卓平台上 也有虚拟机类的app 这款VMOS
  • 祝您健康:抢救脑溢血患者的神奇秘方:针刺十宣穴,涌泉穴

    中风 脑出血 的抢救方法 中风 脑血管意外 是临床常见的急性病症 特别是对于中老人 更是致死致残的高发病 脑溢血抢救放血急救法是对中风最有效的一种急救方法 如能正确掌握和及时施救 将能很大程度地减少中风对人体的伤害 我想 对于每个血压有点高
  • 关于软件测试

    目录 一 了解软件测试 二 软件测试和软件开发的区别 三 一个优秀的软件测试人员需要具备的素质 一 了解软件测试 其实在早期是没有软件测试这个行业的 刚开始都是程序员自己进行调试 寻找其中的一系列问题 慢慢的人们发现测试在整个项目研发阶段都
  • centos7开启网卡命令_CentOS7 开启网卡,设置开机启用网卡

    默认centos和redhat7都是不启用有线网卡的 要么手动开启 要么安装时直接启用 安装时启用网卡和指定IP最省事 一 临时启用网卡 关机或重启后 网络不会自动开启 1 使用命令 ip addr 查看网卡的IP 1 ip addr 2
  • R语言DMwR报错问题

    使用包DMwR的SOMTE函数报错 Error in factor newCases a levels 1 nlevels data a labels levels data invalid labels length 0 should b
  • python绘制星空(菜鸟级)

    设计知识点 使用turtle绘图库与random库产生一个范围随机数完成绘制 编译环境 anaconda spyder 比较通俗 就不搞注释了 懒得写 废话不多说 直接上代码 绘制星空 import turtle as t random a
  • linux命令--umask

    一 umask介绍 在linux系统中 我们创建一个新的文件或者目录的时候 这些新的文件或目录都会有默认的访问权限 umask命令与文件和目录的默认访问权限有关 若用户创建一个文件 则文件的默认访问权限为 rw rw rw 创建目录的默认权
  • Jquery Ajax解决跨域请求session丢失的问题

    后端代码 ajax请求的跨域允许 resp setHeader Access Control Allow Credentials true 是否支持cookie跨域 resp setHeader Access Control Allow O
  • linux部署java项目

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 linux部署java项目步骤 一 部署jdk 1 下载jdk 官网下载比较慢
  • 毕业设计-基于大数据的电影爬取与可视化分析系统-python

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • apache beam_如何使用apache beam pub sub和sql为在线商店建立实时数据管道

    apache beam It is fascinating to see how malleable our data is becoming Nowadays we have tools to convert highly nested
  • 西瓜书_学习任务_更新至9.5号

    任务1 西瓜书3 1 3 2 3 3 章节学习 描述对数几率回归算法的过程 任务2 详细解释逻辑回归模型中每个超参的意义 任务3 西瓜书3 3节的扩展内容 softmax回归和3 6节学习 任务4 理解sklearn包中LogisticRe
  • Apache JMeter 5.5 下载安装以及设置中文教程

    Apache JMeter 5 5 下载安装以及设置中文教程 JMeter 下载Apache JMeter 5 5 配置环境变量 查看配置JDK 配置JMeter环境变量 运行JMeter 配置中文版 一次性 永久设置正文 JMeter 下
  • Qt 读写xxx.ini配置文件

    1 配置文件 ini 请注意 我们所讨论的是项目中的配置文件 它是整个项目共用的 所以它要有一个项目使用的文件名 其后缀是 ini 例如 端口配置 ini ini文件格式 INI文件由节 键 值组成 节 section 参数 键 值 nam
  • 卷积神经网络手写体识别

    CNN 背景 卷积 LeNet网络结构 C1 S2 C3 S4 C5 F6 输出 数据集 代码及运行结果 测试 CNN 1995年 Yann LeCun 与Yoshua Bengio 提出了convolutional neural netw
  • 编程每日一题_C程序设计_i++ 与 ++i

    描述 区分 i 与 i 之间差异 代码示例1 include
  • Leetcode1402.做菜顺序——逆序贪心

    文章目录 引入 题解 引入 在本周的双周赛中 有了这么一道题 一个厨师收集了他 n 道菜的满意程度 satisfaction 这个厨师做出每道菜的时间都是 1 单位时间 一道菜的 喜爱时间 系数定义为烹饪这道菜以及之前每道菜所花费的时间乘以
  • javascript 判读字符串是否为数字

    javascript在通过parseIn或parseFloat将字符串转化为数字的过程中 如果字符串中包含有非数字 那么将会返回NaN 参考下面代码 parseInt Hello 10 return NAN parseInt 110 10
  • 算法模型部署- Docker

    一 什么是docker Docker是一个虚拟环境容器 可以将你本地开发开发环境 代码 配置文件等一并打包到一个容器中 然后发布到任意平台 部署到你想部署到的任意服务器中 二 模型部署为什么要使用docker 假设将本地项目部署到服务器中