一、什麼是docker?
docker是乙個開源的應用容器引擎,可以輕鬆地為任何應用建立乙個輕量級、可移植、自給自足的容器。開發者在本地編譯測試通過的容器可以批量地在生產環境中部署,包括虛擬機器和其他平台。
我們可以將自己的應用以及依賴的環境一起打包到乙個容器中,然後這個容器就可以很容易的放到其他機器上執行。而且非常易於裝載、複製、移除。
二、虛擬機器和docker對比
在上圖中,容器是乙個應用層抽象,用於將**和依賴資源打包在一起。多個容器可以在同一臺機器上執行,共享作業系統核心,但各自作為獨立的程序在使用者空間中執行。與虛擬機器相比,容器占用的空間較少,瞬間就能完成啟動。
虛擬機器則是乙個物理硬體層抽象,用於將一台伺服器變成多台伺服器,管理程式允許多個虛擬機器在一台機器上執行,每個虛擬機器都包含乙個獨立的作業系統、乙個或多個應用、必要的二進位制檔案和資源庫。因此占用大量空間,啟動也十分緩慢。
由於容器所需要的資源要比虛擬機器少(虛擬機器需要乙個完整的系統環境),所以它們易於部署且快速啟動。
特性容器
虛擬機器啟動速度
秒級幾秒內就可以啟動
分鐘級有時候需要長達十幾分鐘才能啟動,具體看環境安裝資源大小而定
儲存空間占用
一般為mb為單位
需要的空間至少g單位的空間
效能接近原生,基本沒有其他的消耗
作業系統會占用較多的資源
系統支援量
一台普通的伺服器可以支援上千個容器
一般最多支援幾十個虛擬機器,而且看電腦配置而定
三、拋開虛擬機器面向docker容器
現在大應用不斷增加,容器化是技術發的必然趨勢,容器技術也會不斷地進化,所以我們要把容器技術用起來,就從docker開始!
有很多小夥伴都覺得用這個有一定地門檻,安裝太麻煩,當然,這也是誤區。
有些人認為用docker很麻煩,只有大公司用,或者學習這個成本很高,認為對現有系統、架構改造太大,成本太高等等,這些都是誤區。
四、docker的三個基本概念
1、映象
docker映象是乙個特殊的檔案系統,除了提供容器執行時所需要的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的配置引數。映象不包含任何動態資料,其內容在構建後也不會改變。
我們可以簡單的理解,映象就像是乙個什麼環境、依賴資源、檔案和你的應用程式都跟你打包的乙個檔案系統。就類似於作業系統一樣,作業系統也是由c盤下的windows資料夾和其他系統檔案組成的一樣,要執行作業系統,肯定是需要這些資源、檔案、依賴都存在,你可以理解為這一整套檔案系統就是映象。
2、容器
容器和映象的關係就像是物件導向程式中的例項和類一樣,類是靜態的,例項是通過類執行起來才有的。執行起來的程式才有程序。
容器你可以理解為執行起來的映象,比如,一套系統程式也是由很多個檔案、資源、依賴組成,那麼把它完整的一套說法類似叫映象。如果系統程式沒有執行起來,它其實也是放在硬碟上的系統檔案而已。而容器,就是表示把系統程式執行起來,相當在電腦裡開乙個程序,執行起來的系統程式我們稱之為容器。你可以這麼想:針對同一套系統程式你可以執行多個,就是有多個程序。對於容器來說,你也可以同時執行多個同乙個映象的容器,這方便我們做集群。
3、倉庫
映象我們構建好後,可以很容易的在當前的作業系統上執行,但是如果需要在其他伺服器上使用這個映象,我們就需要乙個集中存放、分發映象的乙個服務中心。
每個倉庫可以包含多個標籤,每個標籤對應乙個映象,通常乙個倉庫包含同乙個軟體不同版本的映象,而根據標籤來區分軟體的各個不同版本。如果我們要使用倉庫裡的映象,一般都會指定乙個標籤用於指定軟體版本,如果不指定標籤則用最新的乙個版本。
(這裡用docker提供的docker for windows為例,docker toolbox適用於windows 10以下的系統,我本人是window 10)
docker 是乙個應用容器引擎,肯定需要安裝才能使用。
docker可以執行在linux上,也可以執行在windows上,在這裡,目前以windows環境為例,後面再說linux上的docker使用,一般在linux上運用docker居多。
要在windows上執行docker,需要滿足下面幾個條件:
1、windows 10 64位:pro、enterprise或education (build 14393或更高版本)
2、在bios中啟用虛擬化。一般預設是啟用的
啟用hyper-v
安裝成功後,桌面會有乙個docker圖示:
雙擊執行後,右下角會多出乙個託管圖示:
右鍵:
點選settings進入設定面板:
介面左下角有個綠色圖示+docker running,表示docker已經正常執行起來了。
在這裡我用阿里雲的:
如果是windows 10的使用者則直接以下操作:修改registry-mirros節點。
修改後重啟docker服務即可。
重啟後我們可以小試一下:
開啟windows powershell 工具
開啟後,輸出命令 docker image ls 表示輸出當前已經存在的映象列表如:
這是我本機的,我上面裝載了rabbitmq、mysql和redis常用的服務工具映象。
Docker初探之執行RabbitMQ訊息佇列服務
我們平時在使用rabbitmq是基於windows作業系統的,在使用前需要安裝er lang和rabbitmq服務程式,如果版本不對rabbitmq就啟動失敗,安裝流程也比較麻煩。但如果在docker中則變得簡單。在使用rabbitmq之前,我們首先需要拉取rabbitmq映象,然後在進行執行rab...
docker學習筆記(一)初探docker
docker 可以簡單理解為一種容器,將開發完成的應用程式打包,在任意環境中部署執行,消除了不同物理環境中執行的差異。按照docker官方比喻,運輸貨物時,要用到多種不同的運輸工具,可能包括貨車 叉車 起重機 火車和輪船。這意味著這些工具必須能夠處理大小不 一 運輸需求各異的貨物 例如袋裝的咖啡 桶...
docker在centos和windows的安裝
yum remove docker docker client docker client latest docker common docker latest docker latest logrotate docker logrotate docker engine yum install y ...