如何使用Docker在容器中搭建一個網站

  • 作者:由 匿名使用者 發表于 歷史
  • 2021-08-16

映象(image)

Docker 映象(Image)就是一個只讀的模板。例如:一個映象可以包含一個完整的作業系統環境,裡面僅安裝了 Apache 或使用者需要的其它應用程式。映象可以用來建立 Docker 容器,一個映象可以建立很多容器。Docker 提供了一個很簡單的機制來建立映象或者更新現有的映象,使用者甚至可以直接從其他人那裡下載一個已經做好的映象來直接使用。

映象(Image)就是一堆只讀層(read-only layer)的統一視角,也許這個定義有些難以理解,看看下面這張圖:

右邊我們看到了多個只讀層,它們重疊在一起。除了最下面一層,其它層都會有一個指標指向下一層。這些層是Docker內部的實現細節,並且能夠在docker宿主機的檔案系統上訪問到。統一檔案系統(Union File System)技術能夠將不同的層整合成一個檔案系統,為這些層提供了一個統一的視角,這樣就隱藏了多層的存在,在使用者的角度看來,只存在一個檔案系統。

倉庫(repository)

倉庫(Repository)是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(Registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。

倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。最大的公開倉庫是 Docker Hub,存放了數量龐大的映象供使用者下載。國內的公開倉庫包括 時速雲 、網易雲 等,可以提供大陸使用者更穩定快速的訪問。當然,使用者也可以在本地網路內建立一個私有倉庫。

當用戶建立了自己的映象之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個映象時候,只需要從倉庫上 pull 下來就可以了。

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

容器(container)

Docker 利用容器(Container)來執行應用。容器是從映象建立的執行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。

容器的定義和映象幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

一個執行態容器被定義為一個可讀寫的統一檔案系統加上隔離的程序空間和包含其中的程序。下面這張圖片展示了一個執行中的容器。

正是檔案系統隔離技術使得Docker成為了一個非常有潛力的虛擬化技術。一個容器中的程序可能會對檔案進行修改、刪除、建立,這些改變都將作用於可讀寫層。

Top