Docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。
Docker 和傳統虛擬化方式的不同之處:容器是在操作系統層面上實現虛擬化,直接複用本地主機的操作系統,而傳統方式則是在硬件層面實現。
Docker 鏡像
Docker 鏡像就是一個只讀的模板。(鏡像是隻讀的,容器在啓動的時候創建一層可寫層作爲最上層。)
例如:一個鏡像可以包含一個完整的 ubuntu 操作系統環境,裏面僅安裝了 Apache 或用戶需要的其它應用程序。
鏡像可以用來創建 Docker 容器。
Docker 提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裏下載一個已經做好的鏡像來直接使用。
Docker 容器
Docker 利用容器來運行應用。
容器是從鏡像創建的運行實例。它可以被啓動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
可以把容器看做是一個簡易版的 Linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序
Docker 倉庫
倉庫是集中存放鏡像文件的場所。有時候會把倉庫和倉庫註冊服務器(Registry)混爲一談,並不嚴格區分。實際上,倉庫註冊服務器上往往存放着多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標籤(tag)。
倉庫分爲公開倉庫(Public)和私有倉庫(Private)兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括 Docker Pool 等,可以提供大陸用戶更穩定快速的訪問。
當然,用戶也可以在本地網絡內創建一個私有倉庫。
當用戶創建了自己的鏡像之後就可以使用 push
命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上
pull
下來就可以了。