天天看點

奇怪的知識又增加了2——軟體部署 & Docker

奇怪的知識又增加了2——軟體部署 & Docker

      • 部署
      • Docker:Build once,Run anywhere

部署

  1. 什麼是部署

    一般,軟體從研發到使用者使用包括開發和部署兩個環節,其中,部署就是讓寫的程式或者開發的産品在某一個環境下跑起來。按環境的不同,可以分為遠端部署和本地部署。

    解決問題:為什麼在我的電腦上跑得起來,放另一台電腦就不行?

  2. 怎麼去部署

    從源代碼生成軟體包 -----> 軟體包放到某一環境 -----> 配置目标環境使得軟體運作。

    (啊,乍一看,好像廢話)

Docker:Build once,Run anywhere

  1. 簡單/通俗:如何通俗解釋Docker是什麼? - 周宇剛的回答 - 知乎
  2. 生動/形象:如何通俗解釋Docker是什麼? - 小棗君的回答 - 知乎
  3. Docker包括鏡像、容器和倉庫三個重要的概念,以C++的角度,鏡像可以看作類,容器是對象,倉庫就是庫。Docker是管理這些内容的工具。

鏡像(Image)

Docker鏡像可以看作是一個特殊的檔案系統,除了提供容器運作時所需的程式、庫、資源、配置等檔案外,還包含了一些為運作時準備的一些配置參數(如匿名卷、環境變量、使用者等)。但沒有動态的資料,是隻讀的。

容器(Container)

Docker容器與鏡像幾乎一樣,但是可讀寫的。

倉庫(Repository)

Docker Registry(倉庫注冊伺服器)負責存儲和分發鏡像,每個Registry可以有多個Repository,每個Repository可以包含多個标簽(Tag),每個标簽對應着一個鏡像。

  1. 虛拟機與Docker:Docker的容器技術更為輕量化。
虛拟機 Docker
隔離級别 作業系統級 程序級
啟動時間 分鐘級 秒級
鏡像存儲 GB~TB KB~MB
叢集規模 上百 上萬
  1. Docker的拉取、運作、退出
sudo docker login xxxxx		# 登陸
sudo docker pull yyyyy:tag 	# 拉取
sudo docker run -ti yyyyy	# 運作
			## -t		tty
			## -i		interactive
			## --net		Connect a container to a network
			## --ipc		IPC mode to use
			## --device	Add a host device to the container
			## --privileged	Give extended privileges to this container
			## -v		Bind mount a volume 映射共享路徑
			
exit	# 退出