【docker】—— 部署python项目

使用docker部署python项目

这里默认已经安装好docker并进行了相关配置,只演示使用docker打包并部署一个简单的python项目。
更多docker基本操作参考:【docker】—— docker常用操作

下面是准备好的项目和程序:

  1. 项目结构:

项目:DOCKER_PYTHON_TESE
文件:main.ipynb

  1. 代码如下:
# main.ipynb代码
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

# 创建一个随机图
num_nodes = 100  # 节点数量
prob_edge = 0.1  # 边的生成概率
G = nx.erdos_renyi_graph(num_nodes, prob_edge)

# 初始化节点状态:0表示未感染,1表示感染
node_states = np.zeros(num_nodes)

# 随机选择一个感染节点
initial_infected = np.random.randint(num_nodes)
node_states[initial_infected] = 1

def propagate_infection(G, node_states, infection_prob=0.3, steps
### 部署Python应用程序到Docker Desktop #### 准备工作环境 为了在Docker Desktop上成功部署Python应用程序,需先安装并配置好Docker Desktop。确认已正确设置后,可以创建一个新的项目目录来放置所有的文件。 #### 创建`Dockerfile` 编写一个名为 `Dockerfile` 的文本文件,在其中定义构建镜像所需的指令: ```dockerfile # 使用官方 Python 基础映像作为父映像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 将当前目录下的所有内容复制到容器中的/app路径下 COPY . . # 安装依赖项 RUN pip install --no-cache-dir -r requirements.txt # 暴露端口供外部访问 EXPOSE 5000 # 运行应用启动命令 CMD ["python", "./app.py"] ``` 此段脚本指定了基础镜像版本、设置了工作空间、传输了本地代码至容器内,并执行必要的包管理操作以准备运行环境[^1]。 #### 编写Python程序 假设有一个简单的Flask Web服务位于 `app.py` 文件中: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, Docker!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) ``` 同时还需要提供一个 `requirements.txt` 来指定项目的依赖关系列表: ``` flask==2.0.1 ``` #### 构建与推送Docker镜像 完成上述准备工作之后,可以通过终端输入如下命令来进行镜像的构建以及上传至远程仓库(如Docker Hub),以便后续可以在其他环境中轻松拉取和使用该镜像: ```bash # 登录Docker Registry (如果尚未登录的话) docker login # 构建镜像并将标签命名为<your_username>/<repository_name>:tag docker build -t myusername/python-flask-app:v1 . # 推送镜像到Docker Hub或其他注册表服务器 docker push myusername/python-flask-app:v1 ``` 以上过程展示了如何打包自己的Python web应用成为可移植性强的标准格式——Docker镜像。 #### 启动容器实例 最后一步是在本地测试这个新创建的应用镜像是否正常运作。通过下面这条命令即可快速启动一个基于刚才制作好的镜像的新容器: ```bash docker run -d -p 4000:5000 myusername/python-flask-app:v1 ``` 这会使得宿主机上的4000端口被转发给容器内部监听着5000端口的服务进程,从而允许外界通过浏览器或者其他HTTP客户端工具向http://localhost:4000发起请求并与之交互[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花间相见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值