成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

還不使用Docker管理數據,你是從1985年穿越來的嗎?

云計算 后端
本文展示了如何創建Python服務包,并希望簡化過程,使程序員的項目維持更長時間。因為當依賴關系發生變化時,它不太可能出現代碼錯誤。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

小白程序員面臨的最大困難之一就是理解環境的概念。環境是指程序員進行編碼的系統,這聽起來貌似很容易,但隨著程序員職業生涯的推薦,程序員會逐漸體會到維護“環境”是一件多么困難的事情。

這主要是因為庫、IDE(集成開發環境),甚至Python代碼都需要經過更新和版本升級。有時更新一個庫,某段代碼就會出錯,需要重新修改代碼。如果同時開發多個項目,就會引起依賴沖突,當某段代碼導致另一段代碼錯誤時,事情就會變得很棘手了。

另外,如果想將項目共享給一個在不同操作系統上的工作伙伴,或者將在Mac上構建的項目交付到另一個操作系統的生產服務器上,就不得不重新配置代碼了。

為了解決這些問題,將項目和項目所處的環境分離的方法被稱為“容器”。容器是支持環境運行的地方,與系統上的其他內容東西相分離。一旦定義了容器中的內容,重建環境就很容易了,甚至可以實現與同事共享項目。

要求

  • 啟動Docker,需要安裝軟件:
  • windows或macOS:安裝Docker Desktop
  • linux:安裝Docker,然后編寫Docker

Python服務包

假設正在創建一個名為server.py的Flask服務,并設置該文件的內容,如下:

  1. from flask import Flask 
  2. server = Flask(__name__)@server.route("/") 
  3.  def hello(): 
  4.     return "Hello World!"if __name__ == "__main__": 
  5.    server.run(host='0.0.0.0'

如上述,需保留代碼依賴關系的記錄。因此創建一個關于需求的txt文件,包含以下內容:

  1. Flask==1.1.1 

因此,服務包有以下結構:

  1. app 
  2. ├─── requirements.txt 
  3. └─── src 
  4.      └─── server.py 

該結構十分符合邏輯(源文件保存在獨立目錄中)。若執行Python程序,我們需要安裝并運行Python解釋器。接下來可以在本地運行這個程序,如果有15個項目同時運行,在一個容器中運行可以避免與其他項目發生沖突。

Dockerfile

運行Python代碼,需要將容器打包為Docker鏡像,然后運行。操作如下:

  • 創建一個包含構建鏡像所需指令的Dockerfile
  • 然后通過Docker生成器創建鏡像
  • 簡單的docker run 命令就可以創建一個正在運行應用程序的容器

Dockerfile分析

Dockerfile是一個包含合成Docker鏡像說明的文件(命名為myimage):

  1. # set base image (host OS) 
  2. FROM python:3.8# set the working directory in the container 
  3. WORKDIR /code# copy the dependencies file to the working directory 
  4. COPY requirements.txt .# install dependencies 
  5. RUN pip install -r requirements.txt# copy the content of the local srcdirectory to the working directory 
  6. COPY src/ .# command to run on container start 
  7. CMD [ "python", "./server.py" ] 

Dockerfile是逐行編譯的,因此生成器會生成一個圖層,并將其疊加在之前的圖像上。在build命令的輸出中,可以看到作為步驟執行的Dockerfile指令。

  1. $ docker build -t myimage . 
  2. Sending build context to Docker daemon 6.144kBStep 1/6 :FROM python:3.8 
  3. 3.8.3-alpine:Pulling from library/python 
  4. …Status:Downloaded newer image for python:3.8.3-alpine 
  5. ---> 8ecf5a48c789Step 2/6 :WORKDIR /code 
  6. ---> Running in 9313cd5d834d 
  7. Removing intermediate container 9313cd5d834d 
  8. ---> c852f099c2f9Step 3/6 :COPY requirements.txt . 
  9. ---> 2c375052ccd6Step 4/6 :RUN pip install -rrequirements.txt 
  10. ---> Running in 3ee13f767d05 
  11. …Removing intermediate container 3ee13f767d05 
  12. ---> 8dd7f46dddf0Step 5/6 :COPY ./src . 
  13. ---> 6ab2d97e4aa1Step 6/6 :CMD python server.py 
  14. ---> Running in fbbbb21349be 
  15. Removing intermediate container fbbbb21349be---> 27084556702b 
  16. Successfully built 70a92e92f3b5 
  17. Successfully tagged myimage:latest 

然后可以發現鏡像存儲在本地圖像中:

  1. $ docker images 
  2. REPOSITORY TAG IMAGE ID CREATED SIZEmyimage latest 70a92e92f3b5 8 seconds ago 991MB 

在開發過程中,可能需要多次為Python服務重新構建鏡像,所以希望花費盡可能少的時間。

Docker和virtualenv非常相似,但又有所不同。Virtualenv允許你在Python依賴關系中切換,但必須使用主機操作系統。然而,使用Docker就可以在任何操作系統上安裝和運行Python(包括Ubuntu、Debian、Alpine以及Windows Server Core)。

因此,如果你在一個團隊中工作,希望可以在以后證明你的技術,就要使用Docker。如果不用docker,venv也是不錯的,但它不是通向未來的憑證。

[[341481]]

圖源:unsplash

本文展示了如何創建Python服務包,并希望簡化過程,使程序員的項目維持更長時間。因為當依賴關系發生變化時,它不太可能出現代碼錯誤。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2013-05-02 09:36:44

代碼項目

2020-03-07 15:25:38

TypeScript代碼開發

2022-01-03 18:07:56

泛型場景demo

2023-01-02 10:08:42

StampedLocAQS框架

2024-02-19 00:00:00

Docker輕量級容器

2023-11-06 07:23:06

API開發生態系統

2019-09-26 11:29:37

70年國慶成就

2015-02-28 13:32:01

搜索大數據營銷

2018-10-08 14:42:55

2009-05-26 16:59:34

IT技術IT管理

2016-06-02 13:22:12

LinuxWeb瀏覽器

2021-10-22 09:41:26

橋接模式設計

2019-11-11 08:45:52

HTTPTCP數據

2018-12-29 14:14:32

2019-06-14 15:10:54

密碼管理存儲密碼攻擊

2021-01-18 08:23:09

大數據AI人工智能

2017-10-18 17:52:50

2016-12-09 13:42:14

2017-11-22 14:16:45

2020-02-07 16:25:26

Java數據分析新型冠狀病毒
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩电影一区二区三区 | 久久久精品一区二区三区 | 一区二区三区欧美 | 午夜视频一区 | 国产精品久久久久久久久免费 | 国产精品久久国产精品久久 | 色婷婷综合网 | 91久久精品日日躁夜夜躁国产 | 狠狠干天天干 | 婷婷久久综合 | 国产视频久 | 大学生a级毛片免费视频 | 男人的天堂在线视频 | 91国内精品久久 | 一区二区三区av | 国产精品成人一区二区 | 少妇精品久久久久久久久久 | 欧美日韩国产一区二区三区 | 亚洲第一在线视频 | 麻豆精品国产91久久久久久 | 日日夜精品视频 | 黄视频免费在线 | 黄色大片免费网站 | 在线视频 亚洲 | 亚洲精品9999 | 亚洲最色网站 | 一区二区三区中文字幕 | 欧美一区二区三区在线视频 | 天天操综合网 | 91福利影院 | 激情一区二区三区 | 亚洲首页| 国产视频中文字幕 | 欧美在线一区二区三区 | 国产福利资源在线 | 成人精品免费视频 | 欧美一级免费看 | 日本视频免费观看 | 亚洲精品在线观看视频 | 国产精品毛片久久久久久久 | 一级特黄a大片 |