iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Software Development

燃燒大三的成果發表系列 第 22

燃燒大三的成果發表第二十二天 - redis & celery & docker(下)

  • 分享至 

  • xImage
  •  

大家好,今天我們要來介紹Docker,在介紹Docker之前我們要先來介紹VM

Virtual Machine(虛擬機器)

VM是甚麼?VM是虛擬機器(virtual machine)的簡稱,就是在電腦內模擬建立一部電腦,將基礎硬體虛擬化,每個虛擬機器都會提供虛擬的硬體,包括 CPU、記憶體、硬碟,方便讓作業系統 (OS) 執行個體可在硬體上執行。每部 VM 都可執行 OS,並且都可以使用這些虛擬化的硬體資源。

VM的優點不少,你可以在相同一台電腦上使用VM,來執行不同作業系統的能力、提高實體資源的使用效率與成本效益,以及加快伺服器佈建速度。另一方面,但是因為VM只將硬體虛擬化,還是要在VM執行時包含 OS 映像、程式庫、應用程式等等,因此檔案可能會變得相當龐大。

Docker

說了這麼多,這些和Docker有甚麼關係呢?

因為虛擬機器過於完整、龐大,有時候我們只是想要架設簡單的服務,這時候我們就可以使用Container這門「容器化」的技術,Container彌補了VM的這些缺點,使虛擬機器有輕量化的優點。Container容器化技術簡單來說就是,將最底層的主機 OS 虛擬化,共用主機 OS,因此不需要將 OS 開機或載入程式庫,只要 OS 相同就可以多個 Container 一起共用一個 OS,導致變的相對較輕量,相對的負荷也較低

經過上面的介紹,可以知道Docker是一項容器化的技術,透過 Container將任何程式打包成可獨立執行的映像檔,發布到任何可執行 Docker 的平臺上執行,如此一來,應用程式等於是可以透過 Docker映象檔或甚至只需要 Dockerfile,就能將程式執行環境帶著走,甚至能夠佈置上雲端。

要進入Docker 的世界裡,首先我們有三個主要的東西要認識:

  1. 映像檔(image)
  2. 容器(container)
  3. 倉庫(repository)

「Image」 包裝了一個服務執行,環境所需要的資源,如同上面所說可以任何程式打包成可獨立執行的映像檔,打包帶走。
所以前兩天我們在安裝redis的時候,其實就是下載Docker平台上,人家「倉庫」中已經打包好上傳到平台上的一個服務,我們直接把image下載下來

然後檢查image的列表

然後在電腦上把這個image裡的「container」啟動起來

接下來我要分享把前面簡單flask的例子也打包成image,並且在docker上run起來


上一篇
燃燒大三的成果發表第二十一天 - redis & celery & docker(中)
下一篇
燃燒大三的成果發表第二十三天 - dockerfile
系列文
燃燒大三的成果發表30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言