前情提要:首先創(chuàng)建一個簡單的Flask項(xiàng)目,參考上一篇文章
鏈接: 將 Python (Flask) Web應(yīng)用部署到Azure應(yīng)用服務(wù)
一、準(zhǔn)備環(huán)境
1、安裝Docker
下載鏈接:Install Docker Desktop on Windows
2、下載 Linux 內(nèi)核更新包
如果出現(xiàn)以上彈窗,點(diǎn)擊鏈接,安裝Linux 內(nèi)核更新包
運(yùn)行下載的更新包(系統(tǒng)將提示你提供提升的權(quán)限,選擇“是”以批準(zhǔn)此安裝)
下載鏈接:舊版 WSL 的手動安裝步驟 | Microsoft Docs
打開開始菜單,打開Power Shell,位置如下圖:
將 WSL 2 設(shè)置為默認(rèn)版本:
wsl --set-default-version 2
3、打開 Microsoft Store,下載Ubuntu
選擇一個版本,點(diǎn)擊獲取
安裝完成后,點(diǎn)擊打開(首次打開,需要在控制臺窗口等待1-2分鐘)
為新的 Linux 分發(fā)版創(chuàng)建用戶帳戶和密碼:
4、Visual Studio Code安裝Docker插件
安裝Azure Tool插件:
安裝成功后, Ctrl+Shift+P,輸入 Azure:Sign In 進(jìn)行登錄
安裝Docker插件:
二、將項(xiàng)目打包成Docker鏡像 并 部署
1、生成requirements.txt
進(jìn)入虛擬環(huán)境
venv\Scripts\activate
安裝 pipreqs
pip install pipreqs
生成依賴包清單:
pipreqs ./ --encoding=utf8 --force
2、編寫Dockerfile
新建文件Dockerfile,沒有后綴,如下圖
# 基于的基礎(chǔ)鏡像
FROM python:3.8.10
# 設(shè)置工作目錄為 /demo/
WORKDIR /demo/
# 將依賴文件拷貝到工作目錄
COPY requirements.txt /demo/
# 執(zhí)行pip指令,安裝這個應(yīng)用所需要的依賴
RUN pip install -r requirements.txt
# 拷貝當(dāng)前目錄的所有內(nèi)容拷貝到工作目錄下
COPY . /demo/
# 允許外界訪問5000端口
EXPOSE 5000
# 設(shè)置容器進(jìn)程為python app.py ,啟動
ENTRYPOINT [ "python", "app.py" ]
3、構(gòu)建鏡像
先打開Docker Desktop,放著就好
docker build -f ./Dockerfile -t images0815 .
images0815 是鏡像名
4、啟動容器
docker run -itd -p 5000:5000 --name cntr0815 images0815
-p 5000:5000 為 主機(jī)(宿主)端口:容器端口 、
–name cntr0815 images0815 對應(yīng) 容器名 鏡像名
5、檢查容器是否啟動
docker ps
6、創(chuàng)建容器注冊表
創(chuàng)建完成后,去注冊表的訪問密鑰功能中,開啟管理員用戶,如下圖
在Docker插件中,找到剛剛創(chuàng)建的鏡像,右鍵選擇Push,如下圖所示
選擇資源組->容器注冊表
7、創(chuàng)建Web應(yīng)用
選擇訂閱、資源組、區(qū)域、以及應(yīng)用服務(wù)計(jì)劃,[ 發(fā)布* ] 選擇 [ Docker容器 ]
[ 映像源 ] 選擇 [ Azure容器注冊表 ],選擇剛剛創(chuàng)建的注冊表 [ registry0815 ]
創(chuàng)建成功后,點(diǎn)擊 Web App的配置,將 [ 僅HTTPS?] 功能 關(guān)閉
8、瀏覽
在 [ 概述 ] 中點(diǎn)擊瀏覽,或者點(diǎn)擊URL,即可進(jìn)行預(yù)覽
三、更新版本
對代碼進(jìn)行一些更改,然后保存
重新構(gòu)建鏡像
docker build -f ./Dockerfile -t images0815:v2 .
images0815 是鏡像名,v2 是新鏡像的標(biāo)簽
構(gòu)建完成:
進(jìn)入我們之前創(chuàng)建的Web App,選擇 [ 部署中心 ] 功能,在標(biāo)記選項(xiàng)中 選擇 [ v2 ] 版本,點(diǎn)擊 [ 保存 ]
再次訪問:
注意: 部署成功之后,可能有5分鐘的延遲,如果更新后訪問依然是舊版本,可以過一段時間再訪問試試文章來源:http://www.zghlxwxcb.cn/news/detail-487871.html
歡迎關(guān)注我的博客,與我一起學(xué)習(xí),我將持續(xù)分享我的學(xué)習(xí)過程,我是 熱愛學(xué)習(xí)的小翁同學(xué)~文章來源地址http://www.zghlxwxcb.cn/news/detail-487871.html
到了這里,關(guān)于將Python項(xiàng)目(Flask)打包成Docker鏡像,部署到微軟云---Azure的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!