iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Modern Web

簡單的python筆記系列 第 16

[Day 16] 介紹 Docker

  • 分享至 

  • xImage
  •  

Docker 是什麼

Docker 是一個開源專案,是輕量級的虛擬化技術,可以大量地節約開發、快速建立、測試和部署應用程式,可將你的程式連同環境一起打包。

簡單說明虛擬化

在了解 Docker 這項技術前,首先要先了解何謂虛擬化。

簡單來說虛擬化要解決的問題就是:讓程式可以在不同硬體上執行時,都以為自己在同一個環境中執行,不再需要擔心環境問題。

  • 目前常見用來比較的虛擬化技術有兩種

    1. 系統層級的虛擬化技術,稱它為虛擬機器(Virtual machine)
    2. 作業系統層級的虛擬化技術,稱它為容器(Container)
  • 前者的代表如 Virtual Box,而後者如 Docker。

虛擬機器 vs 容器

  • 虛擬機器(以作業系統為中心)
    - 虛擬化的目標:將一個應用程式所需的執行環境打包起來,建立一個獨立環境,方便在不同的硬體中移動

  • 容器(以應用程式為中心)
    - 容器化的目標:改善虛擬機器啟動慢、佔較大記憶體的問題

特性 容器 虛擬機
啟動 秒級 分鐘級
硬碟容量 一般為 MB 一般為 GB
效能 接近原生 比較慢
系統支援量 單機支援上千個容器 一般幾十個

註:映像檔是唯讀的,容器在啟動的時候會自動建立一層可寫層作為最上層。

為什麼要使用 Docker

基本上不消耗額外的系統資源,使得應用的效能很高,同時系統資源消耗更少。

  • 具彈性:即便是最複雜的應用程式也可以容器化。
  • 輕量級:容器利用且共享主機 (host) 核心。
  • 可抽換:應用程式運行期間亦可部署更新及升級。
  • 可㩦性:可在本地建造 (build)、部署至雲端、到處皆可運行。
  • 擴充性:可新增並自動分散容器複本 (replica)。
  • 可堆疊:可在運行期間垂直地堆疊服務。

Docker 三元素

Docker 是由映像檔(Image)、容器(Container)、倉庫(Repository)這三個合成的。

  • 1映像檔(Image):Docker 映像檔就是一個唯讀的模板。
  • 2容器(Container):容器是從映像檔建立的執行實例,它可以被啟動、開始、停止、刪除。
  • 3倉庫(Repository):建立自己的映像檔後可用 push 上傳到倉庫,下次要使用這個映像檔時,只需從倉庫上 pull 下來就可以了。

*註:Docker 倉庫的概念跟 Git 類似,註冊伺服器可以理解為 GitHub 這樣的託管服務。

那麼今天就先到這理吧~
感謝各位觀看

下集預告:


上一篇
[Day 15] Python - 虛擬環境 ( pipenv )
下一篇
[Day 17] 安裝 Docker
系列文
簡單的python筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言