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