首页 > 编程语言 >Docker 部署 Python 服务

Docker 部署 Python 服务

时间:2024-06-02 16:00:37浏览次数:23  
标签:__ name 80 Python app visits 部署 Docker docker

app.py
from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)
Dockerfile:
# 使用Python官方镜像作为镜像的基础
FROM python:2.7-slim

# 设置工作空间为/app
WORKDIR /app

# 把当前目录下的文件拷贝到 容器里的/app里
ADD . /app

# 安装requirements.txt中指定的依赖
RUN pip install -r requirements.txt

# 开放80端口
EXPOSE 80

# 设置 NAME 这个环境变量
ENV NAME World

# 当容器启动时,运行app.py
CMD ["python", "app.py"]


docker build -t flaskhello .

docker images

docker run -p 4000:80 flaskhello
后台运行,获得一个容器的ID
docker run -d -p 4000:80 flaskhello

看到缩短的容器ID:
docker ps

网页访问
http://localhost:4000

分享你的镜像

账号注册
test2018
aaaaaa

//登陆
docker login

给镜像打标签
docker tag flaskhello test2018/flaskapp:demo
推送到远端
docker push test2018/flaskapp:demo
随时随地都可以执行
docker run -p 4000:80 test2018/flaskapp:demo


创作不易,小小的支持一下吧!

标签:__,name,80,Python,app,visits,部署,Docker,docker
From: https://blog.csdn.net/qq_30220519/article/details/139392421

相关文章

  • Docker 部署 mysql 服务
    linux用法Container(容器)集合成Services(服务)交互集合成Stack(堆栈)卸载可能存在的旧版本sudoapt-getupdate使apt可以通过HTTPS使用存储库(repository)sudoapt-getinstall-yapt-transport-httpsca-certificatescurlsoftware-properties-common添加Docker官方的......
  • Docker —— 从入门到实践 (yeasy)高清电子版pdf百度云
    书:pan.baidu.com/s/1-uwg0rd__HXJJvc9Gj7C8w?pwd=xrgo提取码:xrgoDocker概述:介绍Docker是什么,它的历史、特点以及为什么需要Docker。Docker安装与配置:指导读者如何在不同的操作系统上安装和配置Docker。Docker基础:讲解Docker的基本概念,如镜像、容器、Docker引擎等。Dockerfile......
  • Python—面向对象小解(5)
    一、多任务介绍1.1进程与线程进程是操作系统分配资源的最小单元线程执行程序的的最小单元线程依赖进程,可以获取进程的资源一个程序执行先要创建进程分配资源,然后使用线程执行任务默认情况下一个进程中有一个线程1.2多任务介绍运行多个进程或线程执行代码逻辑......
  • Ubuntu 22.04 安装Docker
    Ubuntu22.04安装Docker测试环境Linux系统版本:Ubuntu22.04Serverx64Docker版本:Community20.10.15安装方法方法1:脚本自动安装curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun方法2:命令行安装首先更新源,安装必要的依赖软件sudoaptupdatesudo......
  • Docker部署ceph
    一、实验目的Docker部署ceph二、实验内容Docker部署ceph三、实验过程(步骤、命令或源程序代码)及结果(截图)监控,存储1.部署环境三台网络互通的CentOS虚拟机。右键要克隆的虚拟机、选择管理——>克隆,进入克隆虚拟机向导,然后根据向导即可轻松创建。克隆完成主机名......
  • 【jetson nano】yolov5环境配置tensorrt部署加速
    安装pytorchNano上预装的Jetpack版本为4.6.1,Python为3.6.9,CUDA环境为10.2。在PyTorchforJetson中可以下载不同版本的torch,torch<=1.10.0。1安装torch1.8.0#substitutethelinkURLandwheelfilenamefromthedesiredtorchversionabovewgethttps://nvidia.box.com......
  • 【程序异常记录】01 --- python编码问题
    问题描述df=pd.read_csv(meter_path,encoding='utf-8')指定utf-8编码读取后赋值到rosmsg进行topicpublish报错error:fieldmeters_result[].task_meter_id.meter_id.alias_nameisanon-asciistringtips:str通过encode()方法可以编码为指定的bytes。反过来,当从网络或......
  • 椭圆曲线密码学(ECC)加解密,附带python代码
    想起来很久没写博客了,刚好今天要写实验报告,随便把之前的也完成吧1.椭圆曲线概念椭圆曲线在经过化解后,可以用这条式子表达:E:y²=x³+ax+b其背后的密码学原理,是基于椭圆曲线离散对数问题,比RSA算法更有安全且运算速度更快。在看上面的式子,我们知道构造一个椭圆曲线,需要a,b两个参数......
  • Python中的魔法函数
        大家好,Python作为一种高级编程语言,以其简洁、优雅和易读性而闻名。然而,Python的强大之处不仅仅在于其语法的简洁性,还在于其灵活的面向对象编程范式。在Python中,有一类特殊的方法被称为“魔法函数”,它们以双下划线(__)开头和结尾,为Python提供了一种强大的机制,使得用......
  • 使用python绘制小提琴图
    使用python绘制小提琴图小提琴图效果代码小提琴图小提琴图(ViolinPlot)是一种结合了箱线图和核密度估计图的图形,用于显示数据分布的情况。它不仅展示了数据的四分位数、最大值和最小值,还通过密度曲线展示了数据的分布形状。相比于传统的箱线图,小提琴图可以提供更多关......