Docker學習(一)docker的相關概念

容器技術並不是什麼新概念,只不過最近幾年隨着雲計算的火熱,變得被大家所熟知。最早於1979年誕生的chroot技術,容器技術又稱爲容器虛擬化。

虛擬化技術

虛擬化就是通過虛擬化技術將一臺實體計算機虛擬爲多臺邏輯計算機,虛擬後的每一臺邏輯計算機都可以運行不同的操作系統,每一個邏輯計算機都是一個虛擬的實體,相互獨立,相互隔離。雖然通過虛擬技術可以運行虛擬計算機,但是他們並不是在真實的基礎上運行的。

虛擬化就是表示計算機資源的一種抽象方式,它是一系列虛擬技術的集合,如:硬件虛擬化技術,處理器虛擬化技術,指令虛擬化技術,軟件虛擬化技術等。

Docker

對於計算機領域,虛擬化技術主要分爲兩類,一類是硬件虛擬化,一類是軟件虛擬化,容器技術屬於軟件虛擬化。

爲什麼使用容器?

與傳統軟件開發,運維相比,容器技術可以更高效的構建,維護管理應用。舉個例子,傳統軟件開發,應用上線,中間需要好多麻煩的過程,需要安裝各種相關依賴軟件,然後測試,發佈,本地測的好好,上線好發現運行不起來,定位環境問題相當麻煩,相信大家都深有體會。

使用容器技術後,我們可以把應用依賴的軟件以及資源都放到一個集裝箱裏,docker的圖標就是集裝箱。運維只需要一個簡單的命令就可一把它發佈到各個服務器,而且不擔心水土不服,這樣會節省大量的時間。

Docker基礎

docker其實非常簡單,你用到的命令也不過十幾條。

Docker是一個構建,發佈,運行分佈式應用的平臺,Docker平臺整體可以看成是由Docker引擎,Docker Registry兩部分組成。Docker引擎的底層是各種操作系統以及雲計算基礎設施,而上層則是各種應用程序和管理工具,每層之間都通過API來通信的。

  1. Docker Client

    Docker引擎可以簡單的理爲Docker服務端程序,他讓你可以運行基於docker構建的應用,它是一個cs架構的軟件。當你運行docker version時,就會看到兩大部分,client和server。通過client的指令通過API,我們可以直接和後臺守護進程的server通信交互。

  2. Docker Daemon

    daemon就是一個守護進程,它是整個docker的核心引擎,在0.9版本之前,客戶端和服務端是同意在一個二進制文件中,後來爲了根號的管理,劃分爲4個二進制文件:docker,containerd,docker-containerd-shim和docker-runc。

    分開之後,守護進程與容器管理不再相互牽制,使得docker技術變得更人性化。

  3. Docker鏡像

    docker鏡像是Docker系統中的構建模塊,是啓動一個Docker容器的基礎。

    img
    Docker鏡像分層構建,從底層到上層,我們寫的Dockerfile,就是鏡像構建步驟。

  4. Docker容器

    容器是docker的核心,根據鏡像文件描述,docker會創建一個容器,你不用關心它內部有些什麼,你只要知道它提供了你的應用程序所需的所有資源,你可以很方便的管理它。從宿主機來看,它只是一個簡單的用戶進程而已。

  5. Docker倉庫

    相信大家對github都陌生,它是一個開源代碼託管倉庫,docker倉庫和它的作用一樣,不管他存放的是鏡像。這樣你就可以很方便的把你的鏡像分享給其他人,不過你需要把你的鏡像上傳到docker的公開倉庫去。在你本地也可創建私有倉庫,方便不同服務器的應用發佈。

總結

學習使用docker成本並不高,基本看看操作指令,瞭解下docker是幹嘛的就能上手了,如果你想要了解核心原理,那需要花很多時間。

你的應用程序以前是怎麼寫的現在依然怎麼寫,只是最後爲它寫一個Dockerfile,告訴docker該怎麼啓動這個應用,這個應用需要哪些軟件,比如mysql,jdk,tomact,redis,mongodb等,docker會自動幫你安裝這些,並在容器中幫你啓動,這樣你的應用就可以不運行環境爲頭疼了。

在其他服務起安裝,也不需要從前一樣先去手動安裝一些軟件,配置好環境。直接運行鏡像就好了,所有東西都已經放到集裝箱裏了,你所要做的只是把它搬運過去就好了。

今天只是個簡單的介紹,下節課就來安裝使用它。歡迎關注我的公中號:mike啥都想搞,一起交流學習

mike啥都想搞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章