Docker:Docker的简介、安装、使用方法之详细攻略
Docker:Docker的簡介、安裝、使用方法之詳細攻略
?
?
目錄
Docker的簡介
0.1、知乎對Docker的理解—Docker就是集裝箱
0.2、簡書對Docker的理解—Docker帶來標準化
1、一個完整的Docker有以下幾個部分組成
2、Windows 下面運行 Docker 的兩個主要工具
Docker的安裝
0、基于Windows 的Docker安裝
1、官網下載
2、本地安裝圖文教程
3、Docker測試
Docker的使用方法
1、用戶的應用程序遷往Docker容器的五步驟
?
?
Docker的簡介
? ? ? ? ?Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
0.1、知乎對Docker的理解—Docker就是集裝箱
轉自:https://www.zhihu.com/question/28300645/answer/67707287
如有轉載,請貼上鏈接,尊重原創
? ? ? ?Docker的思想來自于集裝箱,集裝箱解決了什么問題?在一艘大船上,可以把貨物規整的擺放起來。并且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會互相影響。那么我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。
? ? ? ?docker就是類似的理念。現在都流行云計算了,云計算就好比大貨輪。docker就是集裝箱。
- 1、docker可以實現虛擬機隔離應用環境:不同的應用程序可能會有不同的應用環境,比如.net開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調試很久,而且很麻煩,還會造成一些沖突。比如IIS和Apache訪問端口沖突。這個時候你就要隔離.net開發的網站和php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。docker可以實現虛擬機隔離應用環境的功能,并且開銷比虛擬機小,小就意味著省錢了。
- 2、docker可以把開發環境直接封裝轉移給運維:你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。
- 3、docker部署高效利用內存:在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來。
? ? ? ? ?總之docker就是集裝箱原理。
?
0.2、簡書對Docker的理解—Docker帶來標準化
轉自:https://www.jianshu.com/p/6891b1eadde8?
如有轉載,請貼上鏈接,尊重原創
? ? ? ? Docker 公司的口號:“Build,Ship,and Run Any App,Anywhere ”,通俗的講就是 “快來用Docker吧,Docke就像集裝箱一樣,用了Docker你的業務就可以隨意的、無拘無束的運行在任何地方”。那集裝箱解決了什么問題?
? ? ? ? 在集裝箱之前,貨物運輸沒有統一的標準方式進行搬運,于是鐵路、公路、海洋等各種運輸之間,需要大量的人力作為貨物中轉,效率極低,而且成本很高。集裝箱出現之后,世界上絕大多數的貨物運輸都可以放到這個神奇的箱子里,然后在公路、鐵路、海洋等所有運輸場景下,這個箱子都可以不用變化形態直接可以承運,而且中間的中轉工作,都可以通過大型機械搞定,效率大大提升。<經濟學家>雜志說:"沒有集裝箱,就沒有全球化。"
? ? ? ? 經濟全球化的基礎就是現代運輸體系,而一個高度自動化、低成本和低復雜性的貨物運輸系統的核心就是集裝箱。在1956年集裝箱出現之前,人們很難想象美國的沃爾瑪能夠遍地開花。而在集裝箱出現之后,以至于某件東半球的產品運至紐約銷售,遠比在紐約近郊生產該產品更劃算。毫不起眼的集裝箱降低了貨物運輸的成本,實現了貨物運輸的標準化,以此為基礎逐步建立全球范圍內的船舶、港口、航線、公路、中轉站、橋梁、隧道、多式聯運相配套的物流系統,世界經濟形態因此而改變。從此全球化開始,商業的潛力被進一步挖掘......牛逼之處我就不多說了,可是這個箱子為什么這么神奇呢?答案其實也就在上面的描述中,無非就是兩個字:標準。在一艘大船上,可以把貨物規整的擺放起來。并且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會互相影響。那么我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。
? ? ? ? 如果你正好是一個運維工程師而且你正感覺你的運維環境一團糟,麻煩請你思考一下這是為什么?
- 語言不同:你是不是正在運維著一個使用 php、java、C#甚至 C/C++等用各種語言編寫的應用都在運行的環境里?
- 環境不同:這個環境是不是因為某種歷史原因,使你的操作系統運行著各個版本的內核甚至還有 windows?
- 版本不同:即使是同樣語言編寫的業務也運行著不同版本的庫?
- 各種不同:你的整個系統環境是不是甚至找不出來兩臺硬件、操作系統、庫版本以及語言版本完全一樣的環境?
? ? ? ? 于是你每次遇到問題都要去排查,到底那個坑到底在那里?
? ? ? ? 從網絡、內核到應用邏輯。你每次遇到產品升級都要在各種環境上做穩定性測試,發現不同的環境代碼 crash 的原因都不盡相同。你就像一個老中醫一樣去經歷各種疑難雜癥,如果遇到問題能找到原因甚至都是幸運的,絕大多數情況是解決了但不知道原因和沒解決自動好了也不知道原因。于是你們在一個特定的公司的環境中積累著“經驗”,成為你們組新手眼中的大神,憑借歷經故障養成的條件反射在快速解決不斷發生的重復問題,并故弄玄虛的說:這就是工作經驗。因為經驗經常是搞不清楚原因時的最后一個遮羞布。當別人抱怨你們部門效率低的時候,你一般的反應是:”you can you up,no can no 逼逼!
? ? ? ? 那么我們再來看看 docker 是怎么做的?現在都流行云計算了,云計算就好比大貨輪。docker就是集裝箱。
?
1、一個完整的Docker有以下幾個部分組成
- DockerClient客戶端
- Docker Daemon守護進程
- Docker Image鏡像
- DockerContainer容器
?
2、Windows 下面運行 Docker 的兩個主要工具
- Docker for Windows:新一代的 Windows下的運行平臺。
- DockerToolbox:上一代的運行平臺,安裝參考Docker Toolbox:Docker Toolbox的簡介、安裝、使用方法之詳細攻略
?
?
?
?
Docker的安裝
pip install docker
?
0、基于Windows 的Docker安裝
參考文章
win10家庭版安裝Docker
? ? ? ?Docker 可以以兩種形式運行在 Windows 上:以 Hyper-V 虛擬機的形式運行 Linux 格式的容器,或者運行原生的 Windows 容器。其中前者運行 Linux 格式的應用程序,后者能運行 Windows 應用程序。
? ? ? ?如果安裝了win10,可以采用安裝包直接安裝,現在 Docker 有專門的 Win10 專業版系統的安裝包,需要開啟Hyper-V。
Hyper-V是微軟的一款虛擬化產品,是微軟第一個采用類似Vmware和Citrix開源Xen一樣的基于hypervisor的技術。Hyper-V 讓你可以在 Windows 上以虛擬機形式運行多個操作系統。
官方文檔提示:HYPER-V 在 64 位版本的 Windows 10 專業版、 企業版和教育版上可用。 但是,切記,不適用于Windows10的家庭版。 因為,默認情況下win10家庭版是沒有hyper-V的,但是可以通過配置進行修改。
?
T1、Windows10家庭版無法安裝docker,需要下載docker toolbox安裝,參考文章
Docker Toolbox:Docker Toolbox的簡介、安裝、使用方法之詳細攻略
?
T2、Windows10家庭版修改配置,直接安裝docker
?
1、官網下載
https://hub.docker.com/
?
2、本地安裝圖文教程
更新……
?
?
3、Docker測試
更新……
?
?
?
Docker的使用方法
1、用戶的應用程序遷往Docker容器的五步驟
? ? ? ?隨著Docker在云計算市場中領先地位的日益穩固,容器技術也成為了一種主流技術。為了對用戶的應用程序使用容器技術,可遵循以下五個步驟。
? ? ? ?Docker容器技術已在云計算市場中風靡一時了,而眾多主流供應商則面臨著技術落后的窘境。那么,是什么讓Docker容器技術變得如此受歡迎呢?對于剛入門的新手來說,容器技術可實現不同云計算之間應用程序的可移植性,以及提供了一個把應用程序拆分為分布式組件的方法。此外,用戶還可以管理和擴展這些容器成為集群。
? ? ? ?在企業用戶準備把應用程序遷往容器之前,理解應用程序的遷移過程是非常重要的。這里將介紹把用戶應用程序遷往Docker容器的五個基本步驟。
步驟1:分解。一般來說,應用程序都是復雜的,它們都有很多的組件。例如,大多數應用程序都需要數據庫或中間件服務的支持以實現對數據的存儲、檢索和集成。所以,需要通過設計和部署把這些服務拆分成為它們自己的容器。如果一個應用程序能夠被拆分成為越多的分布式組件,那么應用程序擴展的選擇則越多。但是,分布式組件越多也意味著管理的復雜性越高。
步驟2:選擇基礎映像。當執行應用程序遷移時,應盡量避免推倒重來的做法。搜索Docker注冊庫找到一個基本的Docker映像并將其作為應用程序的基礎來使用。
? ? ? ?隨著時間的推移,企業將會發現這些Docker注冊庫中基本映像的價值所在。請記住,Docker支持著一個Docker開發人員社區,所以項目的成功與否很大程度上取決于用戶對于映像管理和改良的參與度。
步驟3:安全管理問題。安全性和管理應當是一個高優先級的考慮因素;企業用戶不應再把它們當作應用程序遷移至容器的最后一步。反之,企業必須從一開始就做好安全性和管理的規劃,把它們的功能納入應用程序的開發過程中,并在應用程序運行過程中積極主動地關注這些方面。這就是企業應當花大功夫的地方。
? ? ? ?基于容器的應用程序是分布式應用程序。企業應當更新較老的應用程序以支持聯合身份管理方法,這將非常有利于確保分布式應用程序的安全性。為了做到這一點,應為每一個應用程序組件和數據提供一個的標識符,這個標識符可允許企業在一個細粒度的級別上進行安全性管理。企業用戶還應當增加一個日志記錄的方法。
步驟4:增加代碼。為了創建鏡像,企業用戶需要使用一個Dockerfile來定義映像開發的必要步驟。一旦創建了映像,企業用戶就應將其添加至Docker Hub。
步驟5:配置測試部署。應對在容器中運行的應用程序進行配置,以便于讓應用程序知道可以在哪里連接外部資源或者應用程序集群中的其他容器。企業用戶可以把這些配置部署在容器中或使用環境變量。
? ? ? ?對基于容器的應用程序進行測試類似于對其他分布式應用程序的測試。企業可以對每個容器進行組件測試,并將容器集群作為一個整體進行測試。 確定應用程序應如何能夠在負載增加的情況下進行擴展。如果用戶正在使用一個集群管理器(例如Swarm),則可測試其性能。
? ? ? ?最后,把容器部署到實際生產環境中。為了積極主動地關注基于容器的應用程序的運行狀況,可考慮實施必要的監控和管理機制 。確保打開日志記錄功能。
? ? ? ?很多應用程序遷移至云計算都是采用容器技術的。雖然遷移有一點復雜,但是容器可以保護應用程序投資并賦予了它一個更長的使用壽命。
?
?
?
?
?
參考文章
Docker
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Docker:Docker的简介、安装、使用方法之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决VS编译环境下C++语言出现的异
- 下一篇: 成功解决Docker Desktop r