1. 程式人生 > >Docker(一) Docker入門教程

Docker(一) Docker入門教程

如今Docker的使用已經非常普遍,特別在一線網際網路公司。使用Docker技術可以幫助企業快速水平擴充套件服務,從而到達彈性部署業務的能力。在雲服務概念興起之後,Docker的使用場景和範圍進一步發展,如今在微服務架構越來越流行的情況下,微服務+Docker的完美組合,更加方便微服務架構運維部署落地。

本文詳細解釋介紹Docker入門相關內容,後期重點關注Docker在微服務體系中的使用。在瞭解Docker之前我們先考慮幾個問題:1、Docker是什麼?2、為什麼要使用Docker,它有什麼優勢?帶著這些問題我們來看看下面的內容。

什麼是Docker?

Docker 是世界領先的軟體容器平臺。開發人員利用 Docker 可以消除協作編碼時“在我的機器上可正常工作”的問題。運維人員利用 Docker 可以在隔離容器中並行執行和管理應用,獲得更好的計算密度。企業利用 Docker 可以構建敏捷的軟體交付管道,以更快的速度、更高的安全性和可靠的信譽為 Linux 和 Windows Server 應用釋出新功能。

Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用介面。它是目前最流行的 Linux 容器解決方案。Docker 將應用程式與該程式的依賴,打包在一個檔案裡面。執行這個檔案,就會生成一個虛擬容器。程式在這個虛擬容器裡執行,就好像在真實的物理機上執行一樣。有了 Docker,就不用擔心環境問題。

總體來說,Docker 的介面相當簡單,使用者可以方便地建立和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的程式碼一樣。

Docker 最初是 dotCloud 公司創始人 Solomon Hykes 在法國期間發起的一個公司內部專案,它是基於 dotCloud 公司多年雲服務技術的一次革新,並於 2013 年 3 月以 Apache 2.0 授權協議開源,主要專案程式碼在 GitHub 上進行維護。Docker 專案後來還加入了 Linux 基金會,併成立推動 開放容器聯盟(OCI)。

Docker 自開源後受到廣泛的關注和討論,至今其 GitHub 專案已經超過 4 萬 6 千個星標和一萬多個 fork。甚至由於 Docker 專案的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發實現的;Red Hat 則從 RHEL 6.5 開始對 Docker 進行支援;Google 也在其 PaaS 產品中廣泛應用 Docker。

為什麼要使用Docker

容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷儘量小。傳統虛擬機器方式執行 10 個不同的應用就要起 10 個虛擬機器,而Docker 只需要啟動 10 個隔離的應用即可。

具體說來,Docker 在如下幾個方面具有較大的優勢。

1、更快速的交付和部署

對開發和運維(devop)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。

開發者可以使用一個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署程式碼。 Docker 可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。 Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

2、更高效的虛擬化

Docker 容器的執行不需要額外的 hypervisor 支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。

3、更輕鬆的遷移和擴充套件

Docker 容器幾乎可以在任意的平臺上執行,包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等。 這種相容性可以讓使用者把一個應用程式從一個平臺直接遷移到另外一個。

4、更簡單的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。

Docker vs VM

從下圖可以看出,VM是一個執行在宿主機之上的完整的作業系統,VM執行自身作業系統會佔用較多的CPU、記憶體、硬碟資源。Docker不同於VM,只包含應用程式以及依賴庫,基於libcontainer執行在宿主機上,並處於一個隔離的環境中,這使得Docker更加輕量高效,啟動容器只需幾秒鐘之內完成。由於Docker輕量、資源佔用少,使得Docker可以輕易的應用到構建標準化的應用中。但Docker目前還不夠完善,比如隔離效果不如VM,共享宿主機作業系統的一些基礎庫等;網路配置功能相對簡單,主要以橋接方式為主;檢視日誌也不夠方便靈活。

Docker(一):Docker入門教程

Docker 在容器的基礎上,進行了進一步的封裝,從檔案系統、網路互聯到程序隔離等等,極大的簡化了容器的建立和維護。使得 Docker 技術比虛擬機器技術更為輕便、快捷。

作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。Docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機器方式要快得多;Docker 對系統資源的利用率很高,一臺主機上可以同時執行數千個 Docker 容器。

相關概念

Docker是CS架構,主要有兩個概念:

  • Docker daemon: 執行在宿主機上,Docker守護程序,使用者通過Docker client(Docker命令)與Docker daemon互動
  • Docker client: Docker 命令列工具,是使用者使用Docker的主要方式,Docker client與Docker daemon通訊並將結果返回給使用者,Docker client也可以通過socket或者RESTful api訪問遠端的Docker daemon

Docker(一):Docker入門教程

總結了解了Docker的組成,再來了解一下Docker的三個主要概念:

  • Docker image:映象是隻讀的,映象中包含有需要執行的檔案。映象用來建立container,一個映象可以執行多個container;映象可以通過Dockerfile建立,也可以從Docker hub/registry上下載。
  • Docker container:容器是Docker的執行元件,啟動一個映象就是一個容器,容器是一個隔離環境,多個容器之間不會相互影響,保證容器中的程式執行在一個相對安全的環境中。
  • Docker hub/registry: 倉庫: 共享和管理Docker映象,使用者可以上傳或者下載上面的映象,官方地址為https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

映象就相當於打包好的版本,映象啟動之後執行在容器中,倉庫就是裝儲存映象的地方。

相關推薦

Docker() Docker入門教程

如今Docker的使用已經非常普遍,特別在一線網際網路公司。使用Docker技術可以幫助企業快速水平擴充套件服務,從而到達彈性部署業務的能力。在雲服務概念興起之後,Docker的使用場景和範圍進一步發展,如今在微服務架構越來越流行的情況下,微服務+Docker的完美組合,更加

Docker 入門

Docker 可以用來打包應用、依賴以及環境到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上。 docker 兩個關鍵的部分為容器和映象,這兩者的關係可以理解為 OOP 中類和物件的關係,容器作為物件,映象作為類。Docker 映象是用於建立 Docker 容器的模板,

Hadoop教程() Hadoop入門教程

1 Hadoop入門教程 Hadoop是Apache開源組織的一個分散式計算開源框架(http://hadoop.apache.org/),用java語言實現開源軟體框架,實現在大量計算機組成的叢集中對海量資料進行分散式計算。Hadoop框架中最核心設計就是:HDFS和MapReduce,HDFS實現儲存

Nginx教程() Nginx入門教程

1 Nginx入門教程Nginx是一款輕量級的Web伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like協議下發行。由俄羅斯的程式設計師IgorSysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。

Docker():Docker入門教程

所在 公有 物理 自己的 定性 屬於 apach 占用 重啟 如今Docker的使用已經非常普遍,特別在一線互聯網公司。使用Docker技術可以幫助企業快速水平擴展服務,從而到達彈性部署業務的能力。在雲服務概念興起之後,Docker的使用場景和範圍進一步發展,如今在微服務架

Docker入門教程)介紹

操作 AC font start 一個 namespace com 下載地址 div 1.1docker是什麽: Docker是通過內核虛擬化技術(namespaces及cgroups cpu、內存、磁盤io等)來提供容器的資源隔離與安全保障等。由於Docker通過操作系統

Docker 入門教程

單元測試 微服務架構 顯示 library per 安裝 基於 消失 comm 2013年發布至今, Docker 一直廣受矚目,被認為可能會改變軟件行業。 但是,許多人並不清楚 Docker 到底是什麽,要解決什麽問題,好處又在哪裏?本文就來詳細解釋,幫助大家理解它,還

Docker入門教程(七)Docker API

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第七篇,重點介紹了Docker Registry API和Docker Hub API。 縱觀我們的Docker系列教程,我們已經討論了很多重要的Docker元件與命令。在本文中,我們將繼續深入學習Do

Docker入門教程(六)另外的15個Docker命令

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第六篇,繼續介紹Docker命令。之前的第二篇文章中我們就介紹了一些基本的Docker命令,本文過後,你將會接觸到所有的Docker常用命令。努力學習吧。 在之前的文章中,我們介紹了15個Docker命

Docker入門教程(五)Docker安全

【編者的話】DockOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第五篇,介紹了Docker的安全問題,依然是老話重談,入門者可以通過閱讀本文快速瞭解。 我們必須高度重視開源軟體的安全問題,當開發者在使用Docker時,從本地構建應用程式到生產環境部署是沒有任何差異的(譯

Docker入門教程(四)Docker Registry

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第四篇,介紹了Docker Registry,它是Docker中的重要元件。本文通過情景演繹的方式對其進行了介紹,圖文並茂,強烈推薦讀者閱讀。 在Docker系列教程的上一篇文章中,我們討論了Docke

Docker入門教程(三)Dockerfile

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第三篇,介紹了Dockerfile的語法,DockerOne目前在程式碼高亮部分還有些Bug,我們會盡快修復,目前在程式碼部分有會些字元會被轉義。 在Docker系列教程的上一篇文章中,我們介紹了15個

DOCKER入門教程和Ubuntu安裝

1、docker安裝 連線外網下載docker https://docs.docker.com/install/linux/docker-ce/ubuntu/ 命令安裝: 1、解除安裝舊版本: sudo apt-get remove docker docke

linux-CentOS7 下的 Docker最新入門教程 超級詳細 (安裝以及簡單的使用)

1、為什麼使用Docker(本人) 最近總是頻繁的在新伺服器釋出專案, 每次釋出都需要佈置專案所需要的環境特別麻煩,而且還有一臺機器需要兩個環境的狀況 例如:釋出java web 專案而言 需要下載安裝jdk 和tomcat 安裝Docker後只需要幾個命令就輕鬆搞定,

Docker安裝及使用入門教程

Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。 1 使用Docker Toolbox安裝Docker

Docker入門教程(二)命令

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第二篇,介紹了Docker的基本命令以及命令的用法和功能。 在Docker系列教程的第一篇文章中,我們瞭解了Docker的基礎知識,知道了它是如何工作以及如何安裝的。在這篇文章中,我

Docker最全教程——從理論到實戰(七) Docker最全教程——從理論到實戰() Docker最全教程——從理論到實戰(二) Docker最全教程——從理論到實戰(三) Docker最全教程——從理論到實戰(四) Docker最全教程——從理論到實戰(五) Docker最全教程——從理論到實戰

在本系列教程中,筆者希望將必要的知識點圍繞理論、流程(工作流程)、方法、實踐來進行講解,而不是單純的為講解知識點而進行講解。也就是說,筆者希望能夠讓大家將理論、知識、思想和指導應用到工作的實際場景和實踐之中,而不是拿著字典寫文章,抱著寶典寫程式碼。至於很多具體的語法、技術細節,除了常用的知識點,筆者更希望大家

Docker最全教程——從理論到實戰() Docker最全教程——從理論到實戰()

Docker最全教程——從理論到實戰(一) 目錄 前言 隨著生產力的發展尤其是彈性架構的廣泛應用(比如微服務),許多一流開發者都將應用託管到了應用容器上,比如Google、微軟、亞馬遜、騰訊、阿里、京東和新浪。   從未來的發展方向來看,容器引擎將會越來越成為主流,哪怕不是彈性架構

Docker最全教程——從理論到實戰(八) Docker最全教程——從理論到實戰() Docker最全教程——從理論到實戰(二) Docker最全教程——從理論到實戰(三) Docker最全教程——從理論到實戰(四) Docker最全教程——從理論到實戰(五) Docker最全教程——從理論到實戰

在本系列教程中,筆者希望將必要的知識點圍繞理論、流程(工作流程)、方法、實踐來進行講解,而不是單純的為講解知識點而進行講解。也就是說,筆者希望能夠讓大家將理論、知識、思想和指導應用到工作的實際場景和實踐之中,而不是拿著字典寫文章,抱著寶典寫程式碼。至於很多具體的語法、技術細節,除了常用的知識點,筆者更希望大家

surging+CentOS7+docker+rancher2.0 入門部署教程

好的 one 運行環境 rec ots 上傳下載 width egit 情況 準備工作 開發環境 Visual Studio 2017 15.5 運行環境 虛擬機CentOS 7+Docker+Rancher 2.0+Consul+RabbmitMQ 項目下載地址