Docker是什么市框?
Docker 是一個(gè)開源的應(yīng)用容器引擎,基于 Go 語(yǔ)言 并遵從Apache2.0協(xié)議開源页畦。
Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)坯临、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上故痊,也可以實(shí)現(xiàn)虛擬化顶瞳。
容器是完全使用沙箱機(jī)制铺呵,相互之間不會(huì)有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低调缨。
說人話
如果你玩過虛擬機(jī)的話,就知道可以在當(dāng)前系統(tǒng)下通過 VMware芳杏、virtualBox 等安裝一個(gè)新的系統(tǒng)豫领,你可以定制這個(gè)虛擬機(jī)的CPU 內(nèi)存 硬盤等參數(shù)抡柿,獲得幾乎媲美原生的體驗(yàn)。既然系統(tǒng)可以安裝為一個(gè)虛擬機(jī)等恐,那么聰明的人就有了一個(gè)大膽的想法洲劣,我可不可以把一個(gè)軟件服務(wù)通過虛擬機(jī)裝起來(lái)呢?于是docker應(yīng)運(yùn)而生课蔬,docker不僅可以安裝centos Ubuntu等操作系統(tǒng)囱稽,也可以安裝nginx mysql等服務(wù),甚至可以部署個(gè)人編寫的web服務(wù)二跋。
通過虛擬機(jī)托管战惊,這樣啟動(dòng)了一個(gè)進(jìn)程就相當(dāng)于在物理機(jī)系統(tǒng)中啟動(dòng)了一個(gè)新的服務(wù)——進(jìn)程即服務(wù)。由于win10自帶hyperV虛擬機(jī)扎即,因此windows上的docker能直接調(diào)用這個(gè)虛擬機(jī)吞获。
為什么要用Docker况凉?
在沒有docker之前,如果我們要在windows上安裝mysql各拷、mongodb需要先下載這些軟件刁绒,然后還要一步步點(diǎn)設(shè)置,并且注冊(cè)到windows服務(wù)烤黍。并且根本不知道安裝到什么地方(某些版本mysql不能指定安裝位置知市,默認(rèn)到C盤)。同時(shí)也會(huì)在控制面板內(nèi)注冊(cè)許多相關(guān)的插件速蕊。以后要卸載的時(shí)候可能還會(huì)有各種殘留嫂丙。作為一個(gè)強(qiáng)迫癥患者這是萬(wàn)萬(wàn)不能忍受的。
現(xiàn)在有了docker规哲,只需要一行代碼就能拉取所需軟件的鏡像奢入,然后配置一個(gè)容器就啟動(dòng)了。需要開發(fā)的時(shí)候就打開docker媳叨,服務(wù)便能夠運(yùn)行腥光。占用的空間也小,性能和原生差異不大糊秆。增刪查改都只需要一行代碼就能完成武福。卸載起來(lái)也毫無(wú)殘留。更重要的是痘番,我可以同時(shí)有一個(gè)鏡像的幾個(gè)容器捉片。即使我搞壞了一個(gè),也可以用其他的容器汞舱。還能隨時(shí)監(jiān)測(cè)這些容器的磁盤占用等狀態(tài)
安裝及使用
獲取Docker
獲取Docker
注意這個(gè)版本只支持win10以上伍纫,win7是沒有hyperV虛擬機(jī)的
安裝完成后,你在桌面上就獲得一個(gè)可愛的鯨魚圖標(biāo)昂芜,雙擊以后右下角就會(huì)出現(xiàn)docker的圖標(biāo)莹规,稍等會(huì)提升docker is running
修改配置
首先修改使用的CPU數(shù), docker占用資源不大泌神,這里隨意良漱。內(nèi)存根據(jù)自己的實(shí)際需求來(lái)。然后是關(guān)鍵的鏡像位置欢际,默認(rèn)在C盤母市,強(qiáng)迫癥患者還是移到了其他盤
Docker的默認(rèn)官方倉(cāng)庫(kù)在國(guó)外,因此想在國(guó)內(nèi)使用需要配置鏡像加速器损趋,首推阿里云患久。每個(gè)人分配的地址是不一樣的,只需要注冊(cè)阿里云用戶就會(huì)得到一個(gè)加速地址了。
安裝MySQL
搞定后在終端輸入docker就能獲得以下信息
// 搜索mysql的鏡像信息
$ docker search mysql
// 從倉(cāng)庫(kù)拉取mysql蒋失,mysql:tag 后面可以跟標(biāo)簽得到指定版本返帕,不加默認(rèn)為lastest
$ docker pull mysql
// 從鏡像生成容器,注意mysql需要指定登錄的密碼高镐,以及通過-p 映射端口溉旋,必須要映射端口在能才物理機(jī)中訪問到服務(wù)
$ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
// 訪問容器內(nèi)的終端
$ docker exec -it mysql bash
注意事項(xiàng)
在雙擊Docker的安裝的過程中畸冲,會(huì)讓你打開VT虛擬化嫉髓,現(xiàn)在的主流處理器都支持虛擬化功能,所以進(jìn)BIOS打開就好了邑闲,重啟電腦以后Docker就能正常使用了算行。
就是這樣:)