999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

體驗Windows環境下容器技術的魅力

2019-12-16 01:48:12徐峰呂鶴青
電腦知識與技術 2019年29期

徐峰 呂鶴青

摘要:該文通過在windows環境下搭建Docker環境,并設計了直觀的實驗,體會容器技術的神奇功能,是容器技術入門的一種新嘗試。

關鍵詞:容器;docker;nginx

中圖分類號:TP3 文獻標識碼:A

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

新一代信息技術,特別是物聯網、云計算、大數據、人工智能是當前最具活力的新興產業,其中物聯網實現了萬物互聯的物理基礎,提供了海量的實時數據,云計算虛擬化各種資源,為大數據的處理和基于大數據的人工智能提供計算、存儲、網絡等各種資源,隨著數據量和訪問需求的不斷爆發式增長,需求與技術在互相成就的同時都在飛速發展變化。

作為基礎支撐的云計算近年來各種新技術層出不窮,其中最耀眼的明星當屬容器技術,2013年推出的Docker及2014年google推出的Kubernetes讓容器技術得到了業界的廣泛認可,天貓雙十一的天量交易后臺就是容器技術在支撐,目前容器技術已經成為云計算領域最炙手可熱的技術熱點。

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

1容器能做什么

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

2安裝Docker for windows

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

3從Docker Hub上下載鏡像

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

4生成一個容器

已經有了這個鏡像,下面我如果想運行這個鏡像,也就是要生成一個容器,此過程類似于面向對象編程中類和對象的關系,類就是這個鏡像,對象或者實例就是容器,生成容器的過程就是實例化的過程,生成的容器就類似于一個獨立的虛擬機,可以正常提供服務,生成容器的命令為:docker rtln_namewebserv-d-p 80:80ngnix,docker FllB表示運行一個容器,一namewebserv是給這個容器起一個名字,-d表示后臺運行,-p80:80表示把本機的80端口與容器里面操作系統的80端口進行映射,這樣訪問本機的80端口就相當于訪問容器里面操作系統的80端口,最后面的nginx就是剛才我們下載到本地的nginx鏡像名字,正常后面還要加“:版本號”,默認是latest,這里取默認的,后續如果運行的是其他版本的鏡像,生成容器時需要加上“:版本號”進行區分。這樣我們就生成了一個容器,打開瀏覽器,在地址欄輸入127.0.0.1就可以看到nginx的頁面。

5生成100個容器

前面已經生成了一個容器,但到此為止我們沒有看到容器的優勢,下面我們就驗證一下使用容器的魅力,首先打開按Ctrl+Ah+Del打開任務管理器,切換到性能,查看當前系統CPU和內存的占用情況。

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

6批量刪除容器

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

7利用dockerfide生成新鏡像

在容器的世界里,新建一個鏡像并不需要一切從零開始,完全可以在一個成熟的基礎鏡像上,通過疊加一點點自己的內容來生成一個屬于自己的新鏡像,這個功能在持續集成領域具有非常重要的作用,也就是容器通過分層的思想,把原本復雜冗長的基礎環境搭建,變得簡潔高效。

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

FROM nginx

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

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

以上我們從熟悉的windows環境完成了容器環境搭建,下載鏡像并運行和刪除容器、自己新建鏡像等常規操作,盡管實現了基本功能,但我們也看到容器技術的深入學習必須要有linux基礎做支撐,腳本語言的能力、服務器搭建的基礎、網絡基礎甚至是外語的基礎都是不可或缺的,docker是很新的技術,很多幫助文件和資料需要閱讀英文原版的,在經歷一段痛苦的摸索過程后才能領會容器技術的更多魅力。

主站蜘蛛池模板: 亚洲国产av无码综合原创国产| 亚洲欧美在线看片AI| 狠狠亚洲婷婷综合色香| 国产最爽的乱婬视频国语对白| 日韩高清在线观看不卡一区二区| 国产色婷婷| 久久久久亚洲AV成人网站软件| 国产免费福利网站| 欧美午夜久久| 欧美一区中文字幕| 亚洲欧美日韩成人高清在线一区| 亚洲精品桃花岛av在线| 国产美女无遮挡免费视频| 极品国产一区二区三区| 亚洲精品无码抽插日韩| 亚洲日韩AV无码精品| 亚洲无卡视频| 天天爽免费视频| 亚洲无码精品在线播放| 999在线免费视频| 在线a视频免费观看| 性网站在线观看| av色爱 天堂网| 午夜成人在线视频| 久久a级片| 亚洲精品动漫| 在线色国产| 国产精品久久久久久久伊一| 久热中文字幕在线观看| 亚洲第一成网站| 在线播放国产一区| 最新无码专区超级碰碰碰| 亚洲人成亚洲精品| 免费a在线观看播放| 国产精品国产主播在线观看| 亚洲成人高清无码| 免费日韩在线视频| 国产成人1024精品| 国产AV无码专区亚洲A∨毛片| 福利在线不卡| 国产一区二区福利| 国产成人调教在线视频| 制服丝袜 91视频| 日本欧美午夜| 国产91在线|中文| 69av免费视频| 精品黑人一区二区三区| 漂亮人妻被中出中文字幕久久| 亚洲精品国偷自产在线91正片| 日韩激情成人| 欧美一级夜夜爽www| 亚洲日韩AV无码精品| 成人精品午夜福利在线播放| 久久五月天国产自| 久久精品一品道久久精品| AV在线天堂进入| 精品一区二区三区水蜜桃| 亚洲国产精品一区二区高清无码久久| 午夜福利免费视频| 真实国产乱子伦高清| 九九九九热精品视频| 精品国产一区91在线| 人人看人人鲁狠狠高清| 国产成人一二三| 成人福利在线视频| 热99精品视频| 欧美中文一区| 国产视频入口| 91探花国产综合在线精品| 狠狠色综合网| 亚洲精品天堂自在久久77| 国产主播一区二区三区| 国产欧美精品一区aⅴ影院| 亚洲自拍另类| 日韩无码黄色| 在线精品自拍| 中文字幕在线日本| 久久永久精品免费视频| 欧美日韩国产在线人成app| 久久99精品久久久久纯品| 亚洲欧美另类久久久精品播放的| 国产亚洲精品自在线|