小編寫這篇文章的主要目的,主要還是給大家傳授一些關(guān)于Docker的事情,主要是涉及到部署Python Docker的一些事情,比如說會使用到其進(jìn)行部署相關(guān)的一些應(yīng)用,那么,具體的部署方法是什么呢?下面給大家詳細(xì)解答下。
序言:
在應(yīng)用比較古典的物理機(jī)或云服務(wù)器上部署項目都會存在一些痛點
舉個例子吧:有一些使用項目部署效率是比較的低的、并且會造成資源浪費(fèi)、移動運(yùn)輸難度比較的大
而使用Docker部署項目的優(yōu)勢包含:
高效利用系統(tǒng)資源
服務(wù)啟動更快
環(huán)境一致,遷移更加方便
本篇文章將介紹Docker部署一個Python項目的常規(guī)流程
1.Dockerfile描述文件
Dockerfile是一個放置在項目根目錄下的描述文件,可以利用Docker命令基于該文件構(gòu)建一個鏡像
常用的指令包含:
FROM
用于定義基礎(chǔ)鏡像
MAINTAINER
指定維護(hù)者信息,可以省略不寫
RUN
和「安裝命令」連接在一起,可用于安裝工具依賴包
ADD
將宿主機(jī)的文件,并進(jìn)行解壓
COPY
和ADD指令功能一樣,但是不會進(jìn)行解壓操作
WORKDIR
用于切換工作目錄
VOLUME
配置宿主機(jī)與容器的目錄映射
EXPOSE
配置容器內(nèi)項目對外暴露的端口號
CMD
指定容器啟動后,運(yùn)行的命令
比如,可以運(yùn)行某個命令啟動項目
2.實戰(zhàn)一下
使用Docker部署應(yīng)用的常規(guī)流程是:
開發(fā)項目并本地測試通過
編寫Dockerfile放置到項目根目錄
打包鏡像文件
運(yùn)行鏡像容器
測試
為了演示方便,這里以一個簡單的Flask項目為例進(jìn)行講解
2-1項目開發(fā)
from flask import Flask #安裝依賴 #pip3 install-U flask app=Flask(__name__) app.route('/') def index(): return"測試容器部署!" if __name__=='__main__': app.run(host='0.0.0.0',port=8888) #瀏覽器訪問測試 #http://127.0.0.1:8888/ 項目開發(fā)完成,并在本地測試通過后就可以編寫Dockerfile文件了
2-2編寫Dockerfile
在項目根目錄下,創(chuàng)建一個Dockerfile文件,使用上面的指令編寫描述腳本
需要注意的是,這里使用「EXPOSE」指令暴露的端口號與入口文件定義的端口號保持一致
#Dockerfile FROM centos:7.9.2009 RUN yum makecache fast; RUN yum install python3-devel python3-pip-y RUN pip3 install-i https://pypi.douban.com/simple flask COPY main.py/opt WORKDIR/opt EXPOSE 8888 CMD["python3","main.py"]
2-3構(gòu)建鏡像
#在當(dāng)前文件夾下,根據(jù)Dockerfile文件構(gòu)建一個鏡像
#鏡像名稱:xag/my_flask_web
#--no-cache:不使用舊的緩存進(jìn)行鏡像構(gòu)建
docker build--no-cache-t"xag/my_flask_web".
2-4運(yùn)行鏡像容器
使用docker run命令基于鏡像運(yùn)行一個容器
其中
-d:代表容器在后臺運(yùn)行,不是基于前臺運(yùn)行
–name:用于執(zhí)行容器的別名
-p:用于配置宿主機(jī)與容器的端口映射
#-d:后臺運(yùn)行 #宿主機(jī)(9999)映射容器內(nèi)的8888(上面Dockerfile已經(jīng)暴露了8888端口) docker run-d--name flask_web-p 9999:8888 xag/my_flask_web
2-5測試一下
最后在瀏覽器中,通過宿主機(jī)暴露的端口號9999訪問項目了
訪問地址:http://127.0.0.1:9999/
3.總結(jié)
文章中以一個簡單的Web項目闡述了利用Docker部署項目的常規(guī)流程
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128818.html
摘要:阿里云安裝腳本安裝腳本兩個腳本可以任選其一,速度都非常不錯。推薦的加速器有和阿里云。阿里云不同平臺的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說明。上一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)爬蟲框架的安裝下一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)部署相關(guān)庫 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---...
摘要:當(dāng)前版本針對于安裝版概要整體流程貫通,基本可以達(dá)到實用級別。仍舊有很多需要提高的地方發(fā)布構(gòu)建時部署上線服務(wù)器卡頓嚴(yán)重,基本不可以多項目發(fā)布。 該文章旨在描述從零開始搭建環(huán)境,中間遇到的問題以及最終的經(jīng)驗總結(jié)。當(dāng)前版本針對于2.0 docker安裝版 概要 整體流程貫通,基本可以達(dá)到實用級別。滿足2-5臺服務(wù)器,少量的應(yīng)用部署是完全可以的,但達(dá)到一定規(guī)模之后則Walle和Jenkins...
摘要:蠎周刊年度最贊親俺們又來回顧又一個偉大的年份兒包去年最受歡迎的文章和項目如果你錯過了幾期就這一期不會丟失最好的嗯哼還為你和你的準(zhǔn)備了一批紀(jì)念裇從這兒獲取任何時候如果想分享好物給大家在這兒提交喜歡我們收集的任何意見建議通過來吧原文 Title: 蠎周刊 2015 年度最贊Date: 2016-01-09 Tags: Weekly,Pycoder,Zh Slug: issue-198-to...
摘要:周刊根據(jù)讀者對周刊文章的點擊數(shù)據(jù),評選出了年最受關(guān)注的運(yùn)維工具。 Pycoders周刊根據(jù)讀者對周刊文章的點擊數(shù)據(jù),評選出了2013年最受關(guān)注的Python運(yùn)維工具。 showImg(http://segmentfault.com/img/bVbTMb); ? metrology (github.com) 這個庫很酷, 支持你對應(yīng)用進(jìn)行多種測量,并輕松的輸出給類...
摘要:相關(guān)基于項目和項目,并遵循應(yīng)用的十二因素風(fēng)格。相關(guān)在設(shè)計上,項目盡量保持驅(qū)動和模塊化,以便模塊支持不同的實現(xiàn)方案。相關(guān)不僅可以管理眾多虛擬機(jī),其計算服務(wù)還支持對的驅(qū)動,管理引擎的子項目還可用于通過模板管理容器?,F(xiàn)已整合公司所支持的項目。 整理自《Docker技術(shù)入門與實踐》 PaaS(Platform as a Service) PaaS 是希望提供一個統(tǒng)一的可供所有軟件直接運(yùn)行而無需...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02