人生苦短,我用Python+Docker

news2024/9/29 15:19:49

今天用一个简单的例子,介绍下如何使用Docker进行Python部署。

前期准备

  1. 本地需要有Python环境;

  2. 一个Linux的服务器并已经装好Docker ;

  3. 能把代码上传到服务端的工具。

本文的本地环境是Win10+Python3.12,服务器使用Ubuntu的云服务器。

创建Python应用

创建一个新的目录,并在其中创建 main.py 文件(以FastAPI项目为例),内容如下:

创建 requirements.txt 文件

列出应用程序所需的依赖项。

在同一目录下创建一个 requirements.txt 文件,内容如下:

FastAPI项目依赖需要安装的两个第三方模块。

编写 Dockerfile

Dockerfile 是一个包含一系列指令的文本文件,这些指令定义了如何构建 Docker 镜像。

它可以被认为是 Docker 镜像的蓝图,详细描述了镜像应该包含的内容、如何配置、以及如何运行。

dockerfile里的内容可以这样去理解:

  1. 指定Python的运行环境;

  2. 把本地的 requirements.txt 和程序代码拷贝进 Docker 镜像;

  3. Docker里面把依赖的第三方模块安装好;

  4. 使用命令启动/运行应用程序。

构建 Docker 镜像

打开终端,导航到包含上述文件的目录,运行以下命令来构建 Docker 镜像:

如果能使用上面的命令成功build完成,则说明编写的dockerfile是没有大问题的。

到这一步,你的Docker镜像就打好了,接下来就可以部署了..

上传项目文件到服务器

代码 + requirement.txt + dockerfile上传到服务端:

然后服务器端,启动容器:

访问应用程序

以上操作都完成后,就可以在外网访问你的Python应用程序了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1913705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二进制安装nexus

今天安装nexus,想看看别人怎么安装的,结果找了一圈,没有一个靠谱的, 有些题目是二进制安装nexus,内容是东家长李家短胡扯,一个字,不要脸; 详细安装步骤如下,一起学习&…

打通智能体「自我进化」全流程!复旦推出通用智能体平台AgentGym

AI通用智能体的自我进化能力,并非遥不可及。 LLM-based Agent,已经不再需要人类监督者的帮助,开始实现「自我进化」! 这个智能体在学习了专家轨迹以后,获得了基础的通用能力,能够在更广泛、更真实的未知环…

ELK集群搭建

ELK集群搭建 文章目录 ELK集群搭建1.环境准备2.Elasticsearch环境搭建1.创建es账户并设置密码2.选择对应版本进行下载3.编辑配置文件4.设置JVM堆大小 #7.0默认为4G5.创建es数据及日志存储目录6.修改安装目录和存储目录权限 3.系统优化1.增加最大文件打开数2.增加最大进程数3.增…

kettle中调用restful接口时的SSL信任证书问题

1、找第三方获取SSL证书,(本案例为自签名证书) C:\Program Files\Java\jdk1.8.0_241\jre\lib\security>keytool -import -alias aliyun-maven -keystore cacerts -file E:\entSoftware\aliyun-maven.cer 输入密钥库口令: …………一堆证…

电脑怎样连接打印机?详细步骤告诉你!

在现代办公环境中,打印机是必不可少的设备之一。无论是打印文档、图片还是其他资料,连接打印机都是我们日常工作中的基本操作。然而,不同类型的打印机和连接方式可能会让人感到困惑。本文将介绍电脑怎样连接打印机的3种方法,帮助您…

MySQL 数据库基础概念

一、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…

[计网初识1] TCP/UDP

学习内容 1.TCP建立链接的3次握手,断开连接的4次挥手 2.TCP报文段组成 内容 1.TCP 建立连接的3次握手? 假设主动方是客户端,被动方是服务端。 第一次 客户端给服务端发送 “hello,我是客户端” (TCP段中 SYN1) 第二次 服务端给客户端发送"我接…

【C++项目】从零实现一个在线编译器

前言 身为一名程序员,想必大家都有接触过像leetcode这样的刷题网站,不知你们在刷题的过程中是否思考过一个问题:它们是如何实现在线编译运行的功能。如果你对此感到好奇,那么本文将一步步带你来实现一个简易在线编译器。 项目概…

【ai_agent】从零写一个agent框架(四)用rust制作一个python的虚拟运行环境。

前言 为了增加框架的扩展性和适用性,我们要能够在流程节点中运行python脚本。 这个时候需要考虑几个问题: 1 为什么是python? 思考:老实说我并不喜欢python,我更倾向于lua这种短小轻快的脚本。在我之前写的规则引擎…

简单仿写SpringIOC

gitee地址(需要自取)ioc_Imitation: 简单仿写IOC (gitee.com) 项目目录结构 Autowired Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) public interface Autowired { }Component Target(ElementType.TYPE) Retention(RetentionPoli…

云服务器centos7报错:Cannot find a valid baseurl for repo: base/7/x86_64

报错显示 我是使用FinalShell连接centos7; 如下图所示,尝试更新显示Cannot find a valid baseurl for repo: base/7/x86_64 网上找了很多教程最后没在点子上,最后我用gpt解决的,这里仅仅做一下记录(因为我会忘记^_^&…

pnpm workspace使用教程【Monorepo项目】

目录 前言一、pnpm简介特点:对比 二、 创建项目添加文件 pnpm-workspace.yaml目录结构pnpm workspace: 协议修改配置文件执行 安装 三、命令解析执行包命令所有包操作命令 四、实例代码 前言 前面两篇,我们讲了 yarn workspace 和 lerna , …

枚举类 (enum)

目录 一、为什么要有枚举类? 二、枚举的简介 三、自定义枚举类 四、使用enum关键字 五、注意事项 一、为什么要有枚举类? 假如我们有这样的一个需求:设计季节类,并创建对象。 我们就需要以下操作,创建Season类&…

基于FPGA的数字信号处理(16)--定点数的舍入模式(7)6种舍入模式的总结

前言 在前面的6篇文章中,分别对6中舍入模式做了详细的介绍,本文在前文的基础上,再对这6种舍入模式做一个对比和总结。 6种舍入模式 在数据处理过程中,为了防止数据溢出而增加位宽是一种很常见的处理方式,但是随着算法链…

保姆级教程:Linux (Ubuntu) 部署流光卡片开源 API

流光卡片 API 开源地址 Github:https://github.com/ygh3279799773/streamer-card 流光卡片 API 开源地址 Gitee:https://gitee.com/y-gh/streamer-card 流光卡片在线使用地址:https://fireflycard.shushiai.com/ 等等,你说你不…

CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)

一、漏洞名称 OpenSSH 远程代码执行漏洞(CVE-2024-6387) 二、漏洞概述 Open SSH是基于SSH协议的安全网络通信工具,广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞,由于Open SSH服务器端…

记录|C#安装+HslCommunication安装

记录线索 前言一、C#安装1.社区版下载2.VS2022界面设置 二、HslCommunication安装1.前提2.安装3.相关文件【重点】 更新记录 前言 初心是为了下次到新的电脑上安装VS2022做C#上机位项目时能快速安装成功。 一、C#安装 1.社区版下载 Step1. 直接点击VS2022,跳转下…

项目实战--Spring Boot + GraphQL实现实时数据推送

背景 用户体验不断提升而3对实时数据的需求日益增长,传统的数据获取方式无法满足实时数据的即时性和个性化需求。 GraphQL作为新兴的API查询语言,提供更加灵活、高效的数据获取方案。结合Spring Boot作为后端框架,利用GraphQL实现实时数据推…

【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——粗配准

【GeoTransformer系列】——粗配准 1.coarse_matching1.1 概要1.2 功能1.3 超参1.4 input1.5 output2 coarse_target2.1 概要2.2 功能2.3 input2.4 output在模型部分有了初步了解之后, 接下来我们对后续的粗配准、精配准等部分依次进行解读. 本篇主要来看粗配准部分, 代码是在G…

叉车防撞系统:揭秘其多样化工作模式

叉车,作为物流仓储领域的重要工具,其安全性一直备受关注。随着科技的进步,叉车防撞系统应运而生,成为了叉车驾驶员的得力助手。那么,叉车防撞系统究竟是如何实现其安全防护的呢?让我们一同揭开,…