還記得咱們運行的第一個容器嗎?如今經過它來體會一下 Docker 各個組件是如何協做的。docker
容器啓動過程以下:數據庫
Docker 客戶端執行 docker run
命令。django
Docker daemon 發現本地沒有 httpd 鏡像。服務器
daemon 從 Docker Hub 下載鏡像。負載均衡
下載完成,鏡像 httpd 被保存到本地。運維
Docker daemon 啓動容器。學習
docker images
能夠查看到 httpd 已經下載到本地。測試
docker ps
或者 docker container ls
顯示容器正在運行。ui
Docker 借鑑了集裝箱的概念。標準集裝箱將貨物運往世界各地,Docker 將這個模型運用到本身的設計哲學中,惟一不一樣的是:集裝箱運輸貨物,而 Docker 運輸軟件。spa
每一個容器都有一個軟件鏡像,至關於集裝箱中的貨物。容器能夠被建立、啓動、關閉和銷燬。和集裝箱同樣,Docker 在執行這些操做時,並不關心容器裏到底裝的什麼,它無論裏面是 Web Server,仍是 Database。
用戶不須要關心容器最終會在哪裏運行,由於哪裏均可以運行。
開發人員能夠在筆記本上構建鏡像並上傳到 Registry,而後 QA 人員將鏡像下載到物理或虛擬機作測試,最終容器會部署到生產環境。
使用 Docker 以及容器技術,咱們能夠快速構建一個應用服務器、一個消息中間件、一個數據庫、一個持續集成環境。由於 Docker Hub 上有咱們能想到的幾乎全部的鏡像。
不知你們是否意識到,潘多拉盒子已經被打開。容器不但下降了咱們學習新技術的門檻,更提升了效率。
若是你是一個運維人員,想研究負載均衡軟件 HAProxy,只須要執行docker run haproxy
,無需繁瑣的手工安裝和配置既能夠直接進入實戰。
若是你是一個開發人員,想學習怎麼用 django 開發 Python Web 應用,執行 docker run django
,在容器裏隨便折騰吧,不用擔憂會搞亂 Host 的環境。
不誇張的說:容器大大提高了 IT 人員的幸福指數。