Docker (1) 基本概念和安装
Docker簡介
什么是容器?
一種虛擬化的方案,操作系統(tǒng)級別的虛擬化。容器是一個輕量的、獨立的、可執(zhí)行的包,包含了執(zhí)行它所需要的所有東西:代碼、運行環(huán)境、系統(tǒng)工具、系統(tǒng)庫、設置。很長一段時間中,容器是專門用于Linux內(nèi)核的,但微軟和Docker的密切合作將容器帶到了微軟平臺上,現(xiàn)在可以再Linux、windows、Azure、Mac等等操作系統(tǒng)上使用。
?
虛擬機和容器的區(qū)別
磁盤占用空間更少(虛擬機除了應用的運行環(huán)境外,還需要安裝操作系統(tǒng)。幾個G,而容器只需要包含應用程序和它依賴的庫)
資源占用減少(虛擬機需要模擬硬件的行為,對內(nèi)存和CPU的損耗特別大,同樣配置的服務器使用容器要比使用虛擬機服務更多的客戶)
沒有docker前,容器技術很復雜,不容易安裝,也不容易管理實現(xiàn)自動化,而docker就是為了改變些。
?
什么是Docker?
是一個由GO語言編寫的程序運行的“容器”,目前容器服務的基石是操作系統(tǒng)級別的隔離,在同一臺物理服務器上虛擬出多個主機。Docker則實現(xiàn)了一種應用程序級別的隔離,它改變我們基本的開發(fā)、操作但愿,由直接操作虛擬主機,轉換到操作程序運行的“容器”上來。
Docker的英文本意是碼頭工人,也就是搬運工,這種搬運工搬運的十集裝箱(Container),集裝箱里面裝的可不是商品貨物,而是任意類型的App,Docker把App裝在Container內(nèi),通過Linux Container技術的包裝將App變成一種標準化的、可移植的、自管理的組件,這種組件可以再你的Laptop上開發(fā)、調試、運行,最終非常方便和一致地運行在生產(chǎn)環(huán)境下。Docker的核心底層技術是(Linux Container)LXC,Docker在其上面加了薄薄的一層,添加了許多有用的功能。
Docker不僅是歷史上最流行的開源項目之一,而且也從跟上上改變了人們構建應用程序的思維方式,它可以把程序集依賴的二進制文件、第三方庫等封裝在一起,運行在任何安裝Docker Deamon的服務器上,它有望成為未來軟件自動化部署的標準。
Docker的目標
“Build, Ship And Run Any APP, Anywhere” 編譯,裝載任何APP,在任何地方都可以運行。
大概就是一個容器,實現(xiàn)了對應用的封裝,部署,運行等聲明周期管理,只要在(go語言依賴的環(huán)境)glibc的環(huán)境下,導出都可以運行。
?
Docker與虛擬機的區(qū)別
可見每一個虛擬機包括應用、必要的二進制文件和庫、完整的客戶端操作系統(tǒng),大小總計十幾個GB。容器包括應用和應用的所有依賴,每個容器都使用容器自身選擇的發(fā)型版本,但是與其他容器共享宿主操作系統(tǒng)的內(nèi)核。在宿主操作系統(tǒng)的用戶空間內(nèi),他們以隔離的進程方式運行。另外,他們并不像客戶端操作系統(tǒng)正常運行那樣運行所有的進程。而且容器也補綁定任何特別的硬件基礎設施,Docker容器在任何計算機任何硬件基礎設施任何云上都可以運行。
更重要的是,虛擬機需要耗時幾分鐘才能啟動,而且對資源敏感,然后容器只需要幾秒啟動,在資源較少負載過大時也能應付的了。所以,可以再本地計算機運行很少的幾個虛擬機用于開發(fā)目的,但是可以運行很多很多的容器。
?
Docker的使用場景
1.使用Docker容器開發(fā)、測試、部署服務
2.創(chuàng)建隔離的運行環(huán)境
3.搭建測試環(huán)境
4.構建多用戶的平臺即服務(PaaS)基礎設施
5.提供軟件即服務(Saas)應用程序
6.高性能、超大規(guī)模的宿主機部署
?
Docker的基本組成
Docker是C/S架構的程序, 由下面三部分組成:
Docker Client 客戶端:Docker 命令行工具,是用戶使用Docker的主要方式,Docker client與Docker daemon通信并將結果返回給用戶,Docker client也可以通過socket或者RESTful api訪問遠程的Docker daemon(守護進程 服務端)
Docker Daemon 守護進程:Docker 守護進程,也就是Server端,Server端可以部署在本地,也可以部署在遠程,因為Server端與客戶端是通過Rest Ful API進行通信的。
Docker Image 鏡像:鏡像是一個層疊的只讀文件,鏡像中包含有需要運行的文件。鏡像用來創(chuàng)建container,一個鏡像可以運行多個container,鏡像可以通過Dockerfile創(chuàng)建,也可以從Docker hub/registry上下載。
Docker Container 容器:容器是Dcoker的運行組件,啟動一個鏡像就是一個容器,容器是一個隔離環(huán)境,多個容器之間不會相互影響,保證容器中的程序運行在一個相對安全的環(huán)境中。容器基于鏡像啟動和運行。
Docker Registry 倉庫:共享和管理Docker鏡像,用戶可以上傳或者下載上面的鏡像,官方地址為:https://registry.hub.docker.com/ 也可以搭建自己私有的Docker registry
?
?
Docker的優(yōu)點
Docker提供了一種可移植的配置標準化機制,允許你一致性地在不同的機器上運行同一個Container,而LXC(Linux Container)本身可能因為不同機器的不同配置而無法方便的移植運行。
? ? Docker以App為中心,為應用的部署做了很多優(yōu)化,而LXC的幫助腳本主要是聚焦于如何使機器啟動地更快和小號更少的內(nèi)存。
Docker為App提供了一種自動化構建機制(Dockerfile),包括打包,基礎設施管理和安裝等。
Docker提供了一種類似git的Container版本化的機制,允許你對你創(chuàng)建過的容器進行版本管理,依靠這種機制,你還可以下載別人的Container,甚至像git那樣合并。
Docker Container 是可重用的,依賴于版本化機制,你很容易重用別人的Container,作為基礎版本進行擴展
Docker Container 是共享的,有點類似github一樣,Docker有自己的Index,你可以創(chuàng)建自己的DOcker用戶并上傳和下載Docker Image
Docker提供了很多的工具鏈,形成了一個生態(tài)系統(tǒng),這些工具的目標是自動化、個性化和集成化,包括對PASS平臺的支持等。
速度快:運行時的性能可以獲取極大提升,管理操作(啟動、停止、開始、重啟等)都是以秒為單位的,將應用和系統(tǒng)容器化,不添加額外的操作系統(tǒng)。
敏捷:比VM小,比VM快,Docker容器的尺寸減小相比整個虛擬機大大簡化了分布到于和仍與分發(fā)靈活。
輕量:你會擁有足夠的操作系統(tǒng),僅需添加或減小鏡像即可。在一臺服務器上可以部署100~1000個Containers容器。
便宜:開源的、免費的、低成本的。由現(xiàn)代Linux內(nèi)核支持驅動,輕量的Container必定可以再一個物理機上開啟更多容器,注定比VM要便宜。
?
Docker的安裝
官網(wǎng)地址:https://docs.docker.com/install/
首先要***,才能加載出google的驗證碼,注冊 登陸后 才可以下載。
這里是下的mac版的.安裝后登陸賬號就可以了
打開終端輸入?docker --version 檢查是否安裝成功
docker --version Docker version 18.03.1-ce, build 9ee9f40?
鏡像加速
鑒于國內(nèi)網(wǎng)絡問題,后續(xù)拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網(wǎng)易的鏡像地址:http://hub-mirror.c.163.com。
在任務欄點擊 Docker for mac 應用圖標 -> Perferences... -> Daemon -> Registry mirrors。在列表中填寫加速器地址即可。修改完成之后,點擊 Apply & Restart 按鈕,Docker 就會重啟并應用配置的鏡像地址了。
之后我們可以通過 docker info 來查看是否配置成功。
$ docker info ... Registry Mirrors: http://hub-mirror.c.163.com Live Restore Enabled: false轉載于:https://www.cnblogs.com/baidawei/p/9198308.html
總結
以上是生活随笔為你收集整理的Docker (1) 基本概念和安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ask调制流程图_一种基于MATLAB的
- 下一篇: 如何避免量化交易策略模型过度拟合