欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過(guò)docker部署發(fā)布python項(xiàng)目的實(shí)戰(zhàn)步驟

 更新時(shí)間:2025年08月17日 08:53:13   作者:慧一居士  
將Python項(xiàng)目通過(guò)Docker部署發(fā)布,可以實(shí)現(xiàn)環(huán)境一致性、快速遷移和高效運(yùn)維,本文將為大家詳細(xì)介紹一下具體的實(shí)現(xiàn)步驟,希望對(duì)大家有所幫助

將Python項(xiàng)目通過(guò)Docker部署發(fā)布,可以實(shí)現(xiàn)環(huán)境一致性、快速遷移和高效運(yùn)維。以下是實(shí)戰(zhàn)部署的完整步驟,結(jié)合最佳實(shí)踐整理而成:

一、項(xiàng)目準(zhǔn)備

1.確保本地項(xiàng)目可運(yùn)行

開(kāi)發(fā)完成并本地測(cè)試通過(guò)(如 Flask/FastAPI 項(xiàng)目能正常訪問(wèn))。

項(xiàng)目結(jié)構(gòu)示例:

myproject/
├── app.py
├── requirements.txt
└── Dockerfile

2.生成依賴(lài)文件 requirements.txt

# 推薦使用 pipreqs(只導(dǎo)出項(xiàng)目實(shí)際依賴(lài))
pip install pipreqs
pipreqs . --encoding=utf8 --force

# 或使用 pip freeze(可能包含多余包)
pip freeze > requirements.txt

二、編寫(xiě)Dockerfile

在項(xiàng)目根目錄創(chuàng)建 Dockerfile,內(nèi)容如下(以 Flask 為例):

# 使用輕量級(jí)Python鏡像
FROM python:3.11-slim

# 設(shè)置工作目錄
WORKDIR /app

# 復(fù)制依賴(lài)文件
COPY requirements.txt .

# 安裝依賴(lài)(使用國(guó)內(nèi)源加速)
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 復(fù)制項(xiàng)目代碼
COPY . .

# 暴露應(yīng)用端口(與代碼中保持一致)
EXPOSE 5000

# 啟動(dòng)命令(推薦使用 gunicorn 生產(chǎn)部署)
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]

說(shuō)明

  • 使用 slim 鏡像減少體積。
  • --no-cache-dir 減少鏡像大小。
  • 可替換為 uvicorn(FastAPI)或其他啟動(dòng)器。

三、構(gòu)建 Docker 鏡像

# 構(gòu)建鏡像,指定名稱(chēng)和標(biāo)簽
docker build -t my-python-app:v1.0 .

# 查看鏡像是否生成
docker images | grep my-python-app

注意命令末尾的 . 表示上下文路徑。

四、運(yùn)行容器

# 啟動(dòng)容器,后臺(tái)運(yùn)行,端口映射
docker run -d -p 5000:5000 --name myapp my-python-app:v1.0

# 若需掛載配置或日志目錄
# docker run -d -p 5000:5000 -v ./logs:/app/logs --name myapp my-python-app:v1.0

# 查看運(yùn)行中的容器
docker ps

五、測(cè)試訪問(wèn)

瀏覽器訪問(wèn):http://localhost:5000 或服務(wù)器IP地址。

查看日志:

docker logs myapp

六、優(yōu)化建議(進(jìn)階)

1.使用 .dockerignore 文件

__pycache__
*.pyc
.git
.env
.idea

避免不必要的文件被打包進(jìn)鏡像。

2.多階段構(gòu)建(減小鏡像體積)

FROM python:3.11-slim as builder
COPY requirements.txt .
RUN pip install --user -r requirements.txt

FROM python:3.11-slim
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]

3.使用 Docker Compose 管理多服務(wù)

創(chuàng)建 docker-compose.yml

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example

啟動(dòng):

docker compose up --build

七、常用命令速查

功能命令
查看鏡像docker images
查看容器docker ps / docker ps -a
刪除鏡像docker rmi 鏡像ID
刪除容器docker rm 容器ID
查看日志docker logs 容器名
進(jìn)入容器docker exec -it 容器名 /bin/bash

總結(jié)

步驟關(guān)鍵點(diǎn)
1. 準(zhǔn)備項(xiàng)目本地可運(yùn)行 + 生成 requirements.txt
2. 編寫(xiě) Dockerfile基礎(chǔ)鏡像 + 依賴(lài)安裝 + 啟動(dòng)命令
3. 構(gòu)建鏡像docker build -t name:tag .
4. 運(yùn)行容器docker run -d -p host:container --name
5. 測(cè)試驗(yàn)證訪問(wèn)服務(wù) + 查看日志

通過(guò)以上步驟,即可完成一個(gè)標(biāo)準(zhǔn) Python 項(xiàng)目的 Docker 容器化部署,適用于開(kāi)發(fā)、測(cè)試、生產(chǎn)等各類(lèi)環(huán)境。

到此這篇關(guān)于通過(guò)docker部署發(fā)布python項(xiàng)目的實(shí)戰(zhàn)步驟的文章就介紹到這了,更多相關(guān)docker部署發(fā)布python項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker如何更改鏡像

    docker如何更改鏡像

    這篇文章主要介紹了docker如何更改鏡像問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Docker如何同時(shí)啟動(dòng)多個(gè)服務(wù)

    Docker如何同時(shí)啟動(dòng)多個(gè)服務(wù)

    這篇文章主要為大家詳細(xì)介紹了Docker如何同時(shí)啟動(dòng)多個(gè)服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Docker啟動(dòng)為Exited狀態(tài)

    Docker啟動(dòng)為Exited狀態(tài)

    這篇文章主要介紹了Docker啟動(dòng)為Exited狀態(tài)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • docker-swarm之使用Docker secret管理敏感數(shù)據(jù)

    docker-swarm之使用Docker secret管理敏感數(shù)據(jù)

    就Docker Swarm集群服務(wù)而言,secret 是塊狀數(shù)據(jù),例如密碼、SSH私鑰、SSL證書(shū)或其他不應(yīng)通過(guò)網(wǎng)絡(luò)傳輸或未加密存儲(chǔ)在Dockerfile或應(yīng)用程序源代碼中的數(shù)據(jù),我們可以使用Docker secret 集中管理這些數(shù)據(jù),所以接下來(lái)就帶大家了解一下如何使用Docker secret 管理敏感數(shù)據(jù)
    2023-08-08
  • Docker根目錄遷移與滾動(dòng)日志設(shè)置方法

    Docker根目錄遷移與滾動(dòng)日志設(shè)置方法

    在使用docker的過(guò)程中,需要注意docker的根目錄磁盤(pán)位置,默認(rèn)情況下docker的日志是沒(méi)有限制的,所有,除了要修改根目錄位置到比較大的地方,還需要設(shè)置docker滾動(dòng)日志方式,這篇文章主要介紹了Docker根目錄遷移與滾動(dòng)日志設(shè)置方法,需要的朋友可以參考下
    2025-03-03
  • docker registry私服搭建的方法

    docker registry私服搭建的方法

    這篇文章主要介紹了docker registry私服搭建的方法,docker官方的registry鏡像分為兩個(gè)版本,v2和v2以前的版本,本文將分別搭建基于SSL和登錄認(rèn)證的以上兩個(gè)版本的docker私服
    2018-05-05
  • 使用docker命令不需要敲sudo的操作

    使用docker命令不需要敲sudo的操作

    這篇文章主要介紹了使用docker命令不需要敲sudo的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker安裝ros2詳細(xì)步驟介紹

    docker安裝ros2詳細(xì)步驟介紹

    大家好,本篇文章主要講的是docker安裝ros2詳細(xì)步驟介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 利用docker搭建LAMP運(yùn)行環(huán)境教程詳解

    利用docker搭建LAMP運(yùn)行環(huán)境教程詳解

    LAMP相信對(duì)大家來(lái)說(shuō)都不陌生, Docker是一個(gè)開(kāi)源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器,所以這篇文章給大家介紹利用docker快速搭建LAMP運(yùn)行環(huán)境的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-10-10
  • 深入解析docker三種網(wǎng)絡(luò)模式

    深入解析docker三種網(wǎng)絡(luò)模式

    這篇文章主要介紹了docker三種網(wǎng)絡(luò)模式,分別是bridge橋接模式,host主機(jī)模式,none無(wú)網(wǎng)絡(luò)模式,每種模式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論