• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      體驗(yàn)Windows環(huán)境下容器技術(shù)的魅力

      2019-12-16 01:48:12徐峰呂鶴青
      電腦知識(shí)與技術(shù) 2019年29期
      關(guān)鍵詞:容器

      徐峰 呂鶴青

      摘要:該文通過(guò)在windows環(huán)境下搭建Docker環(huán)境,并設(shè)計(jì)了直觀的實(shí)驗(yàn),體會(huì)容器技術(shù)的神奇功能,是容器技術(shù)入門的一種新嘗試。

      關(guān)鍵詞:容器;docker;nginx

      中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2019)29-0238-02

      新一代信息技術(shù),特別是物聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、人工智能是當(dāng)前最具活力的新興產(chǎn)業(yè),其中物聯(lián)網(wǎng)實(shí)現(xiàn)了萬(wàn)物互聯(lián)的物理基礎(chǔ),提供了海量的實(shí)時(shí)數(shù)據(jù),云計(jì)算虛擬化各種資源,為大數(shù)據(jù)的處理和基于大數(shù)據(jù)的人工智能提供計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等各種資源,隨著數(shù)據(jù)量和訪問(wèn)需求的不斷爆發(fā)式增長(zhǎng),需求與技術(shù)在互相成就的同時(shí)都在飛速發(fā)展變化。

      作為基礎(chǔ)支撐的云計(jì)算近年來(lái)各種新技術(shù)層出不窮,其中最耀眼的明星當(dāng)屬容器技術(shù),2013年推出的Docker及2014年google推出的Kubernetes讓容器技術(shù)得到了業(yè)界的廣泛認(rèn)可,天貓雙十一的天量交易后臺(tái)就是容器技術(shù)在支撐,目前容器技術(shù)已經(jīng)成為云計(jì)算領(lǐng)域最炙手可熱的技術(shù)熱點(diǎn)。

      系統(tǒng)掌握容器技術(shù)不是一件容易的事情,需要深入學(xué)習(xí)Knux、有服務(wù)器搭建經(jīng)驗(yàn)和網(wǎng)絡(luò)知識(shí)基礎(chǔ)、需要學(xué)習(xí)python、Golang語(yǔ)言,需要有寫(xiě)腳本的功底和用命令行解決大多數(shù)問(wèn)題的習(xí)慣等等,僅linux的CLI界面就擋住了大多數(shù)人的熱情,因?yàn)镈ocker是基于Linux內(nèi)置的Namespace和CGroup等系統(tǒng)內(nèi)隔離機(jī)制而抽象出來(lái)的一種輕虛擬化技術(shù),所以一直以來(lái)網(wǎng)絡(luò)上的教程都是基于linux的,無(wú)形中抬高了容器技術(shù)的門檻,搭建一個(gè)可看到效果的環(huán)境對(duì)大多數(shù)人來(lái)說(shuō)都是很困難的,筆者從事高職計(jì)算機(jī)教學(xué),在計(jì)算機(jī)類非云計(jì)算專業(yè)學(xué)生教學(xué)過(guò)程中,按照常規(guī)方法,真正能夠自己搭建出容器環(huán)境的同學(xué)寥寥無(wú)幾。2016年8月,微軟在winlO的年度更新中正式推出了dockerforwindows,讓不習(xí)慣linux環(huán)境的人有了更多的選擇,但相關(guān)教程極為匱乏,為給初學(xué)者設(shè)計(jì)一個(gè)能夠直觀感受到容器技術(shù)魅力的實(shí)訓(xùn)環(huán)境,激發(fā)學(xué)習(xí)容器技術(shù)的興趣,本文在windows環(huán)境下快速搭建docker環(huán)境,通過(guò)簡(jiǎn)單幾步實(shí)現(xiàn)容器技術(shù),并通過(guò)幾個(gè)小實(shí)驗(yàn),體會(huì)容器技術(shù)的強(qiáng)大魅力,打開(kāi)容器技術(shù)的大門。

      1容器能做什么

      相比于物理機(jī),虛擬機(jī)實(shí)現(xiàn)了在1臺(tái)主機(jī)上可以同時(shí)跑多個(gè)操作系統(tǒng),如在一臺(tái)內(nèi)存8G的Windows上安裝vmware,在vmware里可以創(chuàng)建3臺(tái)內(nèi)存為2G的linux虛擬機(jī),但再多創(chuàng)建就比較困難了,而且每個(gè)虛擬機(jī)都是一個(gè)完整的操作系統(tǒng),占用空間很大,因?yàn)槊總€(gè)虛擬機(jī)內(nèi)的操作系統(tǒng)都是互相獨(dú)立的,容器技術(shù)正是為了解決這個(gè)問(wèn)題出現(xiàn)的,他能夠極其輕量的打包必要的Bin/Lib,可以根據(jù)鏡像秒級(jí)部署出類似真正操作系統(tǒng)的容器、易于移植和能夠彈性伸縮,最主要的是容器共用底層操作系統(tǒng)資源,可以輕松在8G內(nèi)存的主機(jī)上部署出上百個(gè)容器,在持續(xù)集成和微服務(wù)等領(lǐng)域具有極強(qiáng)的應(yīng)用價(jià)值。

      2安裝Docker for windows

      用戶計(jì)算機(jī)要已經(jīng)開(kāi)啟了BIOS設(shè)置中的硬件虛擬化支持,使用的操作系統(tǒng)選用WINDOWSl0的64位版,驗(yàn)證系統(tǒng)的.netframework版本為V4.0.30319,查看位置為C:\Windows\Mi-crosoft.NEqXFramework64,在控制面板中打開(kāi)“啟用或關(guān)閉win-dows功能”,確認(rèn)Hyper-V功能已經(jīng)啟用,在https://hub.docker.con上注冊(cè)一個(gè)用戶,搜索docker desktop forwindows,大小約835M,下載到本地安裝即可,安裝過(guò)程需要重新啟動(dòng),完成后在右下角會(huì)有docker圖標(biāo)出現(xiàn),鼠標(biāo)移動(dòng)到圖標(biāo)會(huì)顯示DockerDesktop is tuning就表示正常啟動(dòng),然后在命令行下輸入dockerversion可看到docker版本號(hào),表示安裝完成。

      3從Docker Hub上下載鏡像

      DockerHub是一個(gè)由Docker公司運(yùn)行和管理的基于云的存儲(chǔ)庫(kù)。它是一個(gè)在線存儲(chǔ)庫(kù),Docker鏡像可以由其他用戶發(fā)布和使用,截至本文寫(xiě)作時(shí)docker hub上有2,566,623個(gè)公開(kāi)的鏡像,其中很多都是非常高質(zhì)量的鏡像,這樣我們就可以站在巨人的肩膀上直接使用這些優(yōu)質(zhì)鏡像,從Docker Hub上下載鏡像到本地也很簡(jiǎn)單,例如Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,我想下載一個(gè)包含nginx網(wǎng)站功能的鏡像,在windows命令行模式下輸入:docker pull nginx即可把DockerHub上的該鏡像下載到本地,下載完成后輸人docker images即可看到已經(jīng)下載下來(lái)的該鏡像,其中有一個(gè)tag字段顯示latest,其作用是指本鏡像是最新的版本,也可以下載指定版本如v1、v2.7等,在下載時(shí)的格式為docker pullnginx:v1,不指定或默認(rèn)時(shí)就是latest。

      4生成一個(gè)容器

      已經(jīng)有了這個(gè)鏡像,下面我如果想運(yùn)行這個(gè)鏡像,也就是要生成一個(gè)容器,此過(guò)程類似于面向?qū)ο缶幊讨蓄惡蛯?duì)象的關(guān)系,類就是這個(gè)鏡像,對(duì)象或者實(shí)例就是容器,生成容器的過(guò)程就是實(shí)例化的過(guò)程,生成的容器就類似于一個(gè)獨(dú)立的虛擬機(jī),可以正常提供服務(wù),生成容器的命令為:docker rtln_namewebserv-d-p 80:80ngnix,docker FllB表示運(yùn)行一個(gè)容器,一namewebserv是給這個(gè)容器起一個(gè)名字,-d表示后臺(tái)運(yùn)行,-p80:80表示把本機(jī)的80端口與容器里面操作系統(tǒng)的80端口進(jìn)行映射,這樣訪問(wèn)本機(jī)的80端口就相當(dāng)于訪問(wèn)容器里面操作系統(tǒng)的80端口,最后面的nginx就是剛才我們下載到本地的nginx鏡像名字,正常后面還要加“:版本號(hào)”,默認(rèn)是latest,這里取默認(rèn)的,后續(xù)如果運(yùn)行的是其他版本的鏡像,生成容器時(shí)需要加上“:版本號(hào)”進(jìn)行區(qū)分。這樣我們就生成了一個(gè)容器,打開(kāi)瀏覽器,在地址欄輸入127.0.0.1就可以看到nginx的頁(yè)面。

      5生成100個(gè)容器

      前面已經(jīng)生成了一個(gè)容器,但到此為止我們沒(méi)有看到容器的優(yōu)勢(shì),下面我們就驗(yàn)證一下使用容器的魅力,首先打開(kāi)按Ctrl+Ah+Del打開(kāi)任務(wù)管理器,切換到性能,查看當(dāng)前系統(tǒng)CPU和內(nèi)存的占用情況。

      在命令行模式下輸入:for/1%x in(1,1,99)d0docker run-name web%x-d-p 80%x:80nginx,其中for/I構(gòu)建了一個(gè)循環(huán)結(jié)構(gòu),%xin(1,1,99)是控制循環(huán)從l開(kāi)始,每次增加l,直到99,其中%x為循環(huán)中1-99當(dāng)前的值,d0docker run-nameweb%x-d-p 80%x:80nginx為前面生成容器的命令,為了給這100個(gè)容器分別起不同的名字,100個(gè)容器的網(wǎng)站分配本機(jī)不同的端口號(hào),所以用web%x和80%x:80來(lái)自動(dòng)命名,這樣我們就生成了100個(gè)容器(本循環(huán)生成99個(gè),加上前面那個(gè)共100個(gè)),這100個(gè)容器相當(dāng)于生成了100個(gè)安裝有l(wèi)inux操作系統(tǒng)和nginx網(wǎng)站的100臺(tái)虛擬機(jī)在同時(shí)運(yùn)行,在命令行模式下輸入dockerps可以看到生成的這100個(gè)容器的具體狀態(tài)。如果要驗(yàn)證nginx服務(wù)器的效果,打開(kāi)瀏覽器輸入127.0.0.1:80(1-99),可以看到都能打開(kāi)對(duì)應(yīng)網(wǎng)站頁(yè)面,說(shuō)明我們生成的容器都可以正常運(yùn)行,此時(shí)查看任務(wù)管理器,可以看到CPU和內(nèi)存基本沒(méi)有變化,我們測(cè)試100個(gè)容器遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到系統(tǒng)的極限能力,這在傳統(tǒng)的單機(jī)或虛擬機(jī)等方式來(lái)實(shí)現(xiàn)同等功能是不可想象的,這就是容器技術(shù)的魅力。

      6批量刪除容器

      強(qiáng)制刪除一個(gè)正在運(yùn)行的容器的命令是docker rm_f容器ID,如刪除ID為51f9f4a63f2c容器的命令是:docker rm-f51f9f4a63f2c,但當(dāng)前有100個(gè)容器,如果一個(gè)個(gè)刪除效率很低,在linux下可以很容易通過(guò)docker rm-f$(dockerps-aq)實(shí)現(xiàn),docker ps-aq命令可以取出所有容器的id號(hào),但windows命令行模式下不支持這種語(yǔ)法,此時(shí)我們可以用windows自帶的Windows PowerShell來(lái)實(shí)現(xiàn)類似于Linux腳本功能的命令,在Windows PowerShell提示符下輸入docker rm-f(doeker ps—aq),即可批量刪除當(dāng)前運(yùn)行的所有容器。通過(guò)輸入docker ps可驗(yàn)證所有容器均已刪除。

      7利用dockerfide生成新鏡像

      在容器的世界里,新建一個(gè)鏡像并不需要一切從零開(kāi)始,完全可以在一個(gè)成熟的基礎(chǔ)鏡像上,通過(guò)疊加一點(diǎn)點(diǎn)自己的內(nèi)容來(lái)生成一個(gè)屬于自己的新鏡像,這個(gè)功能在持續(xù)集成領(lǐng)域具有非常重要的作用,也就是容器通過(guò)分層的思想,把原本復(fù)雜冗長(zhǎng)的基礎(chǔ)環(huán)境搭建,變得簡(jiǎn)潔高效。

      生成一個(gè)新鏡像可以用docker commit命令直接生成,但大多是用dockeffile的方法,dockerfile是一個(gè)文件,簡(jiǎn)單說(shuō)就是類似于一個(gè)批處理文件,一般規(guī)定基礎(chǔ)鏡像是什么,然后在鏡像中需要增加什么內(nèi)容,比如我希望在nginx基礎(chǔ)鏡像下,把網(wǎng)站首頁(yè)改為"This is my new site!”這幾個(gè)字,就可以首先創(chuàng)建一個(gè)新目錄如mvsit,進(jìn)入這個(gè)目錄后創(chuàng)建一個(gè)文件名為dockerfile的文件,內(nèi)容為:

      FROM nginx

      RUN echo"This is my new site!>/usr/share/nginx/html/in-dex.html

      其中FROM nginx為指定基礎(chǔ)鏡像為nginx,/usr/share/nginx/html/index.html為nginx容器中網(wǎng)站的首頁(yè)文件,所以第一條命令是指定基礎(chǔ)鏡像,第二條命令是更改鏡像中什么內(nèi)容,當(dāng)然還可以增加更多的更改內(nèi)容,完成后使用dockerbuild-t nginx:v1.即可新建一個(gè)鏡像f注意命令最后有一個(gè)點(diǎn),代表當(dāng)前目錄,不能缺),nginx:v1中的v1是指新生成的版本號(hào),使用docker images即可查看到存儲(chǔ)庫(kù)中增加了一個(gè)新鏡像nginx,TAG為v1,這就是我們通過(guò)dockefffle自己新建的鏡像,下面就可以用新建的鏡像利用前面實(shí)驗(yàn)的方法生成新容器了,生成容器的命令是docker run-na/Be webservl-d-p 8080:80nginx:v1,相信理解了前面的方法也能夠理解本命令的語(yǔ)法格式了。

      以上我們從熟悉的windows環(huán)境完成了容器環(huán)境搭建,下載鏡像并運(yùn)行和刪除容器、自己新建鏡像等常規(guī)操作,盡管實(shí)現(xiàn)了基本功能,但我們也看到容器技術(shù)的深入學(xué)習(xí)必須要有l(wèi)inux基礎(chǔ)做支撐,腳本語(yǔ)言的能力、服務(wù)器搭建的基礎(chǔ)、網(wǎng)絡(luò)基礎(chǔ)甚至是外語(yǔ)的基礎(chǔ)都是不可或缺的,docker是很新的技術(shù),很多幫助文件和資料需要閱讀英文原版的,在經(jīng)歷一段痛苦的摸索過(guò)程后才能領(lǐng)會(huì)容器技術(shù)的更多魅力。

      猜你喜歡
      容器
      容器倒置后壓力壓強(qiáng)如何變
      Different Containers不同的容器
      容器倒置后壓力壓強(qiáng)如何變
      人心像一個(gè)容器
      難以置信的事情
      怎樣量出4升水
      液體對(duì)容器底及容器對(duì)桌面的壓力和壓強(qiáng)
      考試周刊(2016年82期)2016-11-01 11:43:44
      直干藍(lán)桉容器育苗基質(zhì)的選擇
      取米
      什么不見(jiàn)了
      孩子(2015年10期)2015-09-10 07:22:44
      榆林市| 伊宁市| 临沂市| 吉水县| 惠来县| 伊金霍洛旗| 弥渡县| 大名县| 高雄县| 资中县| 白水县| 大庆市| 海口市| 松江区| 灯塔市| 舟山市| 合水县| 安福县| 灵寿县| 黄山市| 武川县| 弋阳县| 潞西市| 朝阳区| 莫力| 科尔| 府谷县| 五莲县| 宽城| 乳山市| 朝阳区| 新蔡县| 石林| 清水河县| 惠东县| 清涧县| 温宿县| 类乌齐县| 林州市| 康乐县| 子洲县|