Docker——阿里云服务器使用Docker部署python项目全程小记

简介: 本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。

  本文记录了我在阿里云服务器上使用Docker部署python项目(以flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。


一、准备python项目,并上传项目文件

首先,需要准备一个python的项目,这里以flask项目为例,只准备了两个文件,分别是app.py和requirements.txt。      

  image.png

app.py:

from flask import Flask, jsonify
import logging

app = Flask(__name__)

# 配置日志记录器
logging.basicConfig(
    filename='app.log',
    level=logging.DEBUG,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logger = logging.getLogger(__name__)

# 商品数据列表
products = [
    {
        "id": 1,
        "name": "iPhone 15",
        "price": 7999.0,
    },
    {
        "id": 2,
        "name": "Samsung Galaxy S24",
        "price": 6999.0,
    },
    {
        "id": 3,
        "name": "MacBook Air",
        "price": 9999.0,
    }
]

# 获取所有商品信息
@app.route('/products', methods=['GET'])
def get_all_products():
    logging.info('获取所有商品接口被调用了...')
    return jsonify(products)



if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5000)


要注意,这里的 host='0.0.0.0' 必须是这个,才能允许公共访问,至于端口可以自定义


requirements.txt 里面填写的是项目的依赖:

flask


将项目文件上传至服务器目录 /opt/py 这个路径后面挂载会用到

image.png



二、pull一个python镜像环境


          这里默认已经安装了Docker,在服务器上执行以下命令,拉去python环境最新镜像

docker pull python

image.png


下载成功后,使用 docker images 查看,如下

image.png



三、创建容器、挂载目录


有了环境,就要创建一个容器了,命令如下

docker run -it -d --name=py_dev -p 5000:5000 -v /opt/py:/app python:latest bash 

image.png


此时,容器已经创建成功,可以使用 docker ps 进行查看

image.png



四、安装项目相关依赖

创建的项目要成功运行起来,必须先在容器中下载相关的依赖,命令如下

docker exec -it py_dev bash  --进入容器bash
cd /app
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --在容器bash内安装requirements.txt填写的依赖,在/app下执行

image.png


如上,依赖安装完成。




五、启动项目

当相关依赖安装完成,这时就可以启动项目了,在 /app 目录下执行以下命令进行后台启动


nohup python app.py > app.log 2>&1 &

image.png


这时,项目已经启动成功了,并且 app.log 文件会有启动日志

image.png



六、测试验证

最后,我们可以使用浏览器访问接口 http://公网ip:端口号/products 进行验证了,可以看到接口正常访问,说明python项目已经部署成功。

image.png

============


感谢阅读!


不要忘记点赞、收藏、关注哦!

相关实践学习
使用操作系统智能助手OS Copilot解锁操作系统运维与编程
在本实验场景中,将在阿里云ECS上体验OS Copilot产品。OS Copilot是阿里云操作系统团队基于大模型构建的OS智能助手。它具有自然语言问答、辅助命令执行、系统运维调优等功能,帮助用户更好地使用Linux,提升阿里云的使用体验。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2698 4
|
6月前
|
Shell 网络安全 开发工具
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
396 5
|
6月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
310 5
|
7月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
533 1
|
6月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2002 8
|
6月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
5589 8
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
920 4
|
7月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
303 0
|
Ubuntu Linux Docker
下一篇
开通oss服务