[Docker Day 3] Docker 基礎觀念

Docker包含三種的基本觀念

1. Image映像檔

2. Container容器

3. Repository 倉庫

1. Image映像檔

映像檔是用來建立容器,是一個唯獨的樣板

Ex: 一個映像檔裡面可以包含整個ubuntu的作業系統環境,裡面僅安裝nginx以及需要的套件依賴。

Docker提供了非常好的且簡單的機制去建立及更新映像檔,甚至有公開的平台讓大家能直接拿別人做好的映像檔直接使用。

2. Container容器

Docker使用容器來執行應用

容器也就是將映像檔實例化,每個容器從啟動、開始、停止、刪除通通都是獨立分開的。

容器中會執行在映像檔中設定好的作業系統環境及其對應要啟動的應用程式及服務。

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

3. Respository 倉庫

倉庫也就是大量存放映像檔的地方,每個映像檔又具有不同的標籤(tag)

倉庫可分為公開(public)與私人(private)的倉庫,目前全球最大的倉庫是Docker Hub,提供大量的映像檔供大家下載使用。

私人的倉庫就是使用者能夠在自己的本地端建置屬於自己的私人倉庫

每當建置完成一個映像檔便可以push至倉庫中存放,而要使用其他人寫好的映像檔僅需要pull將別人做好的映像檔從倉庫上拿來使用即可

* 其實說穿了,Docker Hub的概念就有點像Github或Gitlab等託管平台一樣,推拉映像檔的這件事情有點像是git。差別在git是將 “程式碼” 推上去再拉下來,docker是將 “映像檔” 推上去再拉下來 *