返回首页  设为首页  加入收藏  今天是:
网站首页人工智能商业智能智能家居智能手表智能手机智能通信智能电视智能汽车智能机器人
相关文章
 【蓝因子教育】部署你的Pyth…
 2024年智能报警器的现状和发…
 智能互联网发展报告
 MPE智能床携手小度全屋智能打…
 C+智能手环怎么用
 华为TalkBand B1手环怎么调时…
 小米手环是什么
 热了数十年的专业:通信工程
 专业 连续5年就业绿牌的专业…
 信息与通信工程专业就业方向
 特色原料药龙头新产品放量市…
 高通手机芯片业务扭转颓势!…
 苹果拿下全球智能手机市场50…
 最新什么软件看电视不要vip推…
 电视上看TVB的软件有哪些电视…
 什么软件看电视剧不要vip会员…
 长三角(盐城)智能网联汽车…
 人大代表、广汽集团总经理冯…
 迈入智能化下半场新能源汽车…
 日本研发开车机器人时速达5公…
 日本研发能开车的机器人 武藏…
 无惧“烤”验 重大项目这样战…
 中信建投武超则:接下来人工…
 全国通用人工智能创新应用大…
 荣耀总裁赵明谈AI:要看哪些…
 北京教育领域亮出人工智能应…
 【直播预告】大数据大未来!…
 嵌入信息技术 打破高校家校共…
 智能门洞察 CSHIA携手创米数…
 8个“超低门槛”的智能家居花…
 睿住智选:智慧整家新体验开…
 7月11日恒铭达涨停分析:苹果…
 智能手表是鸡肋还是刚需?老…
 全球首款搭载华为智能机芯的…
 北京邮电大学信息与通信工程…
 中国工程院院士邬贺铨:元宇…
 常州各大高校“王牌专业”都…
 手机音乐哪个好
 2500左右买什么手机好
 细数十大智能手机病!你犯“…
 可以玩破解版游戏的软件有哪…
 破解游戏app平台有哪些推荐 …
 2023破解版游戏盒子大全 破解…
 为算力底座夯基聚能 科创板龙…
 支持科技型企业做优做强!深…
 三家产业资本领投通用机器人…
 医学人工智能的发展
 盘点2010年十大最新科技 仿真…
 设计精密!日本造出重现人类…
 知名男星被AI复活父亲回应:…
专题栏目
湖南视觉网络"模板城"--汇集CMS、EShop、BBS、BLOG等系统模板
您现在的位置: 智能制造网 >> 商业智能 >> 正文
高级搜索
【蓝因子教育】部署你的Python项目Python-Jack-Jack
作者:佚名 文章来源:本站原创 点击数: 更新时间:2024/7/18 5:24:08 | 【字体:

  热饮三杯即是家,开发团队通常要产出可以部署到生产环境的项目,还要负责向运维团队提供相应的文档,文档中必须要对项目所依赖的底层库、三方模块、数据持久化方案、缓存、消息队列、环境参数等一系列的内容加以说明。首选这些工作本身就不是很轻松,而且最为关键的问题是有没有遇到项目在开发环境能运行,到了生产环境就出问题的情况,你是如何解决的

  开发环境和生产环境的不一致,还会随着应用的复杂性而加剧,尤其是在将原来的单体应用改造成微服务架构的时候。微服务架构对部署提出了更高的要求,因为每个微服务使用的编程语言、技术栈、依赖的其他服务都可能完全不同,这些都会给部署带来更大的难度。所以,我们需要虚拟化容器技术来解决这些问题,而在所有的容器化技术中,Docker可能是目前最为流行的方案。

  简单的说,基于Docker的虚拟化容器技术最为关键的地方在于,我们可以将需要部署的项目做成一个镜像,而这个镜像中包含了项目所依赖的全部内容。将来我们只需要把一个镜像交给运维团队,而运维团队通过这个镜像可以创建一个或多个容器来运行我们的项目,再对这些容器进行管理就可以了。

  在介绍Docker之前,我们要先来解释一个叫“LXC”的名词。维基百科上对LXC的解释是:“LXC是Linux软件容器的缩写,是一种操作系统层虚拟化技术,它是Linux内核容器功能的一个用户空间接口。在Linux内核中,提供了功能来达成资源的区隔化,与此同时也提供了名称空间区隔化的功能,使应用程序看到的操作系统环境被区隔成独立区间,包括进程树、网络、用户ID以及挂载的文件系统”。Docker是基于Go语言开发的开源应用容器引擎,对LXC做了进一步的封装,可以管理LXC的环境并提供了简单易用的使用接口,是目前最为流行的Linux容器解决方案。

  第1步:确定操作系统内核版本(CentOS 7要求64位,内核版本3.10+;CentOS 6要求64位,内核版本2.6+)。

  第2步:更新系统底层的库文件(建议一定要执行,否则在使用Docker时可能会出现莫名其妙的问题)。

  Nginx是高性能的Web服务器,同时也是做反向代理服务器的上佳选择,使用Docker可以帮助我们用极为简单的方式创建出运行Nginx的容器。

  首先,我们来下载Nginx的官方镜像。如果你有安装操作系统或大型软件的系经验,对镜像这个词一定不会陌生,镜像就类似于我们安装软件时使用的光盘或者ISO文件。我们可以通过下面的命令从Docker仓库中下载Nginx的官方镜像。

  如果没有特殊说明,默认是从官方提供的镜像仓库来下载该镜像,在我是用的阿里云服务器上,该命令连接的是阿里云提供的官方仓库的替代,因为国内的仓库下载速度更快。当然,如果愿意也可以通过修改目录下的文件来指定下载镜像时所使用的镜像仓库,如下所示。

  可以使用来查看所有下载过的镜像,也可以使用命令通过镜像的ID来删除指定的镜像。通过镜像创建容器可以使用命令,如果没有提前使用下载指定的镜像文件,那么在的时候也会先下载该镜像文件,然后再基于该镜像创建容器。

  说明:上面的参数是的缩写,表示容器在后台运行并显示容器的ID;是的缩写,用来映射容器的端口到宿主机的端口,冒号前面是宿主机的端口,冒号后面是容器内部使用的端口;表示容器停止后自动删除容器,执行命令后,容器就不复存在了;后面是自定义容器的名字;在创建容器的过程中,需要用到nginx的镜像文件,镜像文件的下载是自动完成的,如果没有指定版本号,默认是。--detach-p--publish--rmdocker stop webserver--namelatest

  如果需要将自己的Web项目部署到Nginx上,可以使用容器拷贝命令将指定路径下所有的文件和文件夹拷贝到容器的指定目录中。

  如果不愿意拷贝文件,可以在创建容器时用数据卷操作实现目录映射,通过或将指定的文件夹映射到容器的目录,如下所示。

  提示:如果要重新创建名为的容器,需要先删除之前创建的容器。可以通过来停掉它使其自动删除,也可以通过来强行删除运行中的容器。webserverdocker stop webserverdocker rm -f webserver

  至此,我们可以打开浏览器来查看部署到容器中的Web项目了。如果需要查看运行中的容器,可以使用命令;如果希望看到所有的容器,可以使用命令。

  通过上面的例子,相信大家已经感受到了容器的便捷性,我们再来尝试用Docker创建运行MySQL服务的容器。

  说明:上面查询结果的列依次代表索引、镜像名、镜像描述、用户评价、是否官方镜像、自动构建。

  注意:在创建容器时我们使用了数据卷操作,那是因为容器通常是即用即删的,而数据库中的数据却是需要保留下来的。上面的命令中,我们执行了两个数据卷操作,一个是映射了MySQL配置文件所在的文件夹,一个是映射了MySQL数据文件所在的文件夹。在创建该容器的时候,我们还用了参数来指定环境参数,通过来为MySQL指定超级管理员账号对应的口令。当然,在实际应用中,不建议大家使用像这样的弱口令,因为它会给你的系统带来潜在的风险。-eMYSQL_ROOT_PASSWORD=123456root

  到此为止,我们已经掌握了如何通过官方提供的镜像来创建并运行容器。如果愿意,我们也可以创建自己的镜像甚至将这些镜像发布到官方镜像仓库或者是自己的私有仓库中。推荐大家使用Dockerfile的方式来构建自己的镜像,下面我们通过例子来说明Dockerfile的使用。

  我们首先来编写如下所示的Dockerfile文件,Dockerfile文件是用DSL(领域特定语言)描述的构建一个Docker镜像的指令清单,只要编辑好了这个文件,就可以通过来构建我们自己的镜像了。

  Dockerfile中使用的指令对于懂英语的人来说并不难理解,我们在后续的文章中会为大家专门讲解Dockerfile中的指令。上面的代码通过执行命令从Git仓库克隆了代码,这里我们先简单介绍一个这个项目。这个项目非常简单,由三个文件构成,分别是项目的代码、依赖项清单和启动脚本。

  文件是我们用Flask编写的提供API接口的Web后端服务,简单起见并没有使用数据库而是将数据放在了一个列表容器中,代码如下所示。

  文件是项目的依赖项清单,有Python开发经验的对这个文件一定不会陌生。其中,是用来简化API接口开发的三方库,而是用来解决跨域数据请求的三方库,是我们运行Python项目的WSGI服务器,由于添加了库,在启动该服务器时,通过参数和参数可以改善服务器的性能,因为解决了Python中通过线程的方式来无感知使用协程的问题。

  在说一下文件,它是项目的启动脚本,用来启动Gunicorn服务器,代码如下所示。

  提示:上面的命令中,参数用来指定镜像的名字;最后面的表示从当前路径下寻找Dockerfile。当然,如果你的Dockerfile文件并不在当前路径下,也可以通过绝对路径或相对路径的方式指出Dockerfile文件的位置。-t

  接下来我们就可以在容器中部署Python项目了,因为有了我们自己定制的镜像,部署项目的工作就变成了一条非常简单的命令。

  执行完上面的命令后,就可以打开浏览器访问服务器的8000端口了,因为上面的项目没有前端页面,我们直接访问API接口,对应的URL路径是。

  至此,我们已经完成了通过容器部署Python项目的工作,大家一定感受到了容器的简单和强大。但是目前我们使用的这个项目过于简单,甚至没有数据库和缓存,也没有部署前端页面。在后续的文章中,我们会实现项目的前后端分离,把项目需要用到的数据库服务器、缓存服务器、消息队列服务器等全部加入进来,并为大家介绍如何实现多个容器的管理。多个容器能够协同工作才能支撑起一个真正意义上的项目,这些内容会在后续更新的文章中为大家阐述,也希望大家能够点赞支持我继续创作。

  特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

  美媒:特朗普在私人谈话中透露,拜登就枪击事件问他“当时是怎么选择向右扭头的”

  这是哪个天才发明的,真的太感谢你了,自己安安静静玩半天,也不看手机了,简直解放双手

  7月17日 河南发布 幼儿园里小朋友们跟着保安爷爷开心跳舞。网友:“左下角的小孩儿哥真是学到了大爷的...

  苹果新动态:呼吁弃Chrome,应对iPhone“鬼手”,静待台积电2nm

  vivo X200 Pro:这次不上一英寸!iQOO Neo10 Pro:疑似被确认!

商业智能录入:admin    责任编辑:admin 
  • 上一个商业智能:

  • 下一个商业智能: 没有了
  •  
     栏目文章
    普通商业智能 【蓝因子教育】部署你的Python项目Python-Jac… (07-18)
    普通商业智能 北京教育领域亮出人工智能应用“成绩单” 85%… (07-17)
    普通商业智能 【直播预告】大数据大未来!深度解读计算机网… (07-17)
    普通商业智能 嵌入信息技术 打破高校家校共育时空阻隔 (07-17)
    普通商业智能 一家代理公司自白:内卷是行业的代名词 (07-16)
    普通商业智能 日语行业词汇宝典来了!涵盖40多种行业的专业… (07-16)
    普通商业智能 入行必备!进口跨境电商行业专业名词盘点 (07-16)
    普通商业智能 最全!2022年中国大数据产业上市公司市场竞争… (07-15)
    普通商业智能 2021年中国大数据行业产业链现状及区域市场格… (07-15)
    普通商业智能 国外值得关注的十三家大数据与分析公司 (07-15)
    普通商业智能 面向智能交通发展 构建城市治理新模式 (07-13)
    普通商业智能 长沙湘江智能交通产业园设计中标公布! (07-13)
    普通商业智能 四川双马董秘回复:低空经济属于国家最新提出… (07-13)
    普通商业智能 【财经分析】“AI+财务” 推动企业数智化升级… (07-12)
    普通商业智能 大模型与具身智能技术深度融合 人形机器人商业… (07-12)
    普通商业智能 “新质经济 智慧财务”2024世界人工智能大会智… (07-12)
    普通商业智能 Galaxy Watch 6 Business:专注商务功能的智能… (07-11)
    普通商业智能 安全实用 外观大气 中高端商务智能手机推荐 (07-11)
    普通商业智能 随时随地办公 高效商务智能手机推荐 (07-11)
    普通商业智能 金融业务与数据管理 (07-10)