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

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

虛擬化技術

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

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

Docker

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

爲何使用容器?redis

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

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

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啥都想搞

相關文章
相關標籤/搜索