Dockerfile構(gòu)建一個(gè)Python Flask 鏡像
1.Python 程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
? ? return 'Hello, World!'
?2.Dockerfile
FROM python:3.9.5-slim COPY app.py /src/app.py RUN pip install flask WORKDIR /src ENV FLASK_APP=app.py EXPOSE 5000 CMD ["flask", "run", "-h", "0.0.0.0"] ?
3.開始構(gòu)建一個(gè)小的demo
PS E:\images> docker image build -f .\flask_dockerfile -t flask_py . [+] Building 80.3s (9/9) FINISHED ?=> [internal] load build definition from flask_dockerfile ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.0s ?=> => transferring dockerfile: 38B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> [internal] load .dockerignore ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> => transferring context: 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> [internal] load metadata for docker.io/library/python:3.9.5-slim ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?12.7s ?=> [internal] load build context ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> => transferring context: 152B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> [1/4] FROM docker.io/library/python:3.9.5-slim@sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d2 ?47.4s ?=> => resolve docker.io/library/python:3.9.5-slim@sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d21 ?0.0s ?=> => sha256:f42d92068b29045b6893da82032ca4fcf96193be5dcbdcfcba948489efa9e832 1.37kB / 1.37kB ? ? ? ? ? ? ? ? ? ? 0.0s ?=> => sha256:c71955050276b1e3b4be7e29089e4babeb39957981d162a3d422e084601105d3 7.63kB / 7.63kB ? ? ? ? ? ? ? ? ? ? 0.0s ?=> => sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda 27.15MB / 27.15MB ? ? ? ? ? ? ? ? ?44.7s ?=> => sha256:a1111a8f2ec3f3a8ee44a123047349a70f87d1cfebb9e48b06520d0eed436a71 2.77MB / 2.77MB ? ? ? ? ? ? ? ? ? ? 9.3s ?=> => sha256:445d04774519ca200f5c48fd028beaafb49ca763dd58767f1ae7e3933306394c 10.93MB / 10.93MB ? ? ? ? ? ? ? ? ?32.9s ?=> => sha256:9828573e6a0b02b6d0ff0bae0716b027aa21cf8e59ac18a76724d216bab7ef04 1.86kB / 1.86kB ? ? ? ? ? ? ? ? ? ? 0.0s ?=> => sha256:24f3f85d41f368fc2dcd569b181ef6cd4c2bee419a32853be2f8c8964cee34af 235B / 235B ? ? ? ? ? ? ? ? ? ? ? ?11.9s ?=> => sha256:d299f7fb612d59c3d87fcb17028a25c02e94722ef6235e60537a12d0e312abfc 2.64MB / 2.64MB ? ? ? ? ? ? ? ? ? ?17.4s ?=> => extracting sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda ? ? ? ? ? ? ? ? ? ? ? ? ?1.3s ?=> => extracting sha256:a1111a8f2ec3f3a8ee44a123047349a70f87d1cfebb9e48b06520d0eed436a71 ? ? ? ? ? ? ? ? ? ? ? ? ?0.2s ?=> => extracting sha256:445d04774519ca200f5c48fd028beaafb49ca763dd58767f1ae7e3933306394c ? ? ? ? ? ? ? ? ? ? ? ? ?0.5s ?=> => extracting sha256:24f3f85d41f368fc2dcd569b181ef6cd4c2bee419a32853be2f8c8964cee34af ? ? ? ? ? ? ? ? ? ? ? ? ?0.0s ?=> => extracting sha256:d299f7fb612d59c3d87fcb17028a25c02e94722ef6235e60537a12d0e312abfc ? ? ? ? ? ? ? ? ? ? ? ? ?0.2s ?=> [2/4] COPY app.py /src/app.py ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.1s ?=> [3/4] RUN pip install flask ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 19.8s ?=> [4/4] WORKDIR /src ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.0s ?=> exporting to image ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.2s ?=> => exporting layers ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.2s ?=> => writing image sha256:0567a371be3f084fb413092b480735083c224023f8801fc723e228a021ea54b1 ? ? ? ? ? ? ? ? ? ? ? 0.0s ?=> => naming to docker.io/library/flask_py ?PS E:\images> docker images REPOSITORY ? ? ? ? ? ?TAG ? ? ? IMAGE ID ? ? ? CREATED ? ? ? ? ?SIZE flask_py ? ? ? ? ? ? ?latest ? ?0567a371be3f ? 10 minutes ago ? 125MB PS E:\images> docker container run -d ?-p 5000:5000 0567a371be3f ceb69c7ce778ebcf48a0ad91eb16902814cb20470ddb16d0ba795baa18cf4b01
訪問瀏覽器本地ip:http://127.0.0.1:5000/ 顯示Hello, World!
查看容器日志:
PS E:\images> docker logs ceb69c7ce778 ?* Serving Flask app 'app.py' (lazy loading) ?* Environment: production ? ?WARNING: This is a development server. Do not use it in a production deployment. ? ?Use a production WSGI server instead. ?* Debug mode: off ?* Running on all addresses. ? ?WARNING: This is a development server. Do not use it in a production deployment. ?* Running on http://172.17.0.2:5000/ (Press CTRL+C to quit) PS E:\images> docker logs ceb69c7ce778 ?* Serving Flask app 'app.py' (lazy loading) ?* Environment: production ? ?WARNING: This is a development server. Do not use it in a production deployment. ? ?Use a production WSGI server instead. ?* Debug mode: off ?* Running on all addresses. ? ?WARNING: This is a development server. Do not use it in a production deployment. ?* Running on http://172.17.0.2:5000/ (Press CTRL+C to quit) 172.17.0.1 - - [13/Jan/2022 08:50:31] "GET / HTTP/1.1" 200 - 172.17.0.1 - - [13/Jan/2022 08:50:31] "GET /favicon.ico HTTP/1.1" 404 -
到此這篇關(guān)于Dockerfile構(gòu)建一個(gè)Python Flask 鏡像的文章就介紹到這了,更多相關(guān)Dockerfile構(gòu)建一個(gè)Python Flask 鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python集合union()函數(shù)使用實(shí)例詳解
union()方法的工作原理是:返回多個(gè)集合(集合的數(shù)量大于等于2)的并集,即結(jié)果集合包含了所有被合并集合中的所有元素,因?yàn)榧现械脑夭豢芍貜?fù),所以各個(gè)集合中重復(fù)的元素在結(jié)果集合中只會(huì)出現(xiàn)一次,本文將簡單介紹一下Python union()函數(shù)使用方法2023-07-07
Python調(diào)用Java數(shù)據(jù)接口實(shí)現(xiàn)CRUD操作的詳細(xì)指南
Python和Java作為兩種流行的編程語言,在企業(yè)級(jí)應(yīng)用中常常需要實(shí)現(xiàn)跨語言的數(shù)據(jù)交互,下面我們就來看看如何在Django Python項(xiàng)目中調(diào)用Java數(shù)據(jù)接口實(shí)現(xiàn)CRUD操作吧2025-04-04
Python根據(jù)字典值對(duì)字典進(jìn)行排序的三種方法實(shí)例
Python中的字典是無序類型,沒有自己的排序方法,下面這篇文章主要給大家介紹了關(guān)于Python根據(jù)字典值對(duì)字典進(jìn)行排序的三種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
python實(shí)現(xiàn)畫五角星和螺旋線的示例
今天小編就為大家分享一篇python實(shí)現(xiàn)畫五角星和螺旋線的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python實(shí)現(xiàn)GPU加速圖像處理的代碼詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)GPU加速圖像處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
中秋節(jié)老家要貼對(duì)聯(lián)之python無線對(duì)聯(lián)生成器
適逢中秋老家居然有在中秋貼對(duì)聯(lián)的習(xí)俗,于是自己開機(jī)立馬寫了一個(gè)對(duì)聯(lián)生成器,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有參考價(jià)值2021-09-09
Python實(shí)戰(zhàn)購物車項(xiàng)目的實(shí)現(xiàn)參考
今天小編就為大家分享一篇關(guān)于Python實(shí)戰(zhàn)購物車項(xiàng)目的實(shí)現(xiàn)參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
python解析html提取數(shù)據(jù),并生成word文檔實(shí)例解析
這篇文章主要介紹了python解析html提取數(shù)據(jù),并生成word文檔實(shí)例解析,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
TensorFlow內(nèi)存管理bfc算法實(shí)例
今天小編就為大家分享一篇TensorFlow內(nèi)存管理bfc算法實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

