在Window10中使用Docker搭建Linux并配置并發(fā)版環(huán)境
大部分人在window中搭建Linux環(huán)境的主要方法可能是雙系統(tǒng)或虛擬機(jī),最近接觸到Docker(一種新興的虛擬化技術(shù),可以快速有效的配置出各個(gè)版本的開(kāi)發(fā)環(huán)境),在此就接觸、了解、安裝、使用歷程談?wù)勼w驗(yàn)。
一.熟悉并理解Docker
首先在理解docker之前先闡述一個(gè)概念:容器 。 很多人在windows平臺(tái)使用過(guò)虛擬機(jī),但對(duì)容器的概念很陌生,比如傳統(tǒng)虛擬機(jī)VMware,需要模擬出整臺(tái)機(jī)器包括底層硬件,每臺(tái)對(duì)應(yīng)的虛擬機(jī)需要自己的操作系統(tǒng),開(kāi)啟后也會(huì)占用對(duì)應(yīng)的(預(yù)分配的)資源。 而容器技術(shù)則是共享宿主機(jī)的底層硬件及操作系統(tǒng),動(dòng)態(tài)的進(jìn)行資源分配,在用戶空間中以分離的進(jìn)程運(yùn)行。容器技術(shù)作為操作系統(tǒng)虛擬化的一種途徑,可以打包應(yīng)用程序的代碼、配置以及依賴關(guān)系,從而達(dá)到環(huán)境的一致性、版本的一致性。 Docker作為L(zhǎng)inux容器的封裝,提供了特別簡(jiǎn)便的容器作為接口。 換言之,Linux容器并不模擬完整的操作系統(tǒng),而是對(duì)單一進(jìn)程進(jìn)行隔離,對(duì)容器里的進(jìn)程來(lái)說(shuō),它所接觸的資源都是虛擬的,進(jìn)而實(shí)現(xiàn)與底層系統(tǒng)的額隔離。 Docker相比傳統(tǒng)虛擬機(jī)方式具有許多優(yōu)勢(shì): 輕量、啟動(dòng)快速、占用資源少、系統(tǒng)利用率高、高可用和高恢復(fù)性。 對(duì)于在Docker中的三個(gè)基本概念: 1.Image(鏡像) 鏡像,從本質(zhì)上認(rèn)識(shí),是作為提供容器運(yùn)行所需的程序、庫(kù)、資源配置的一個(gè)文件系統(tǒng)。鏡像不保存任何用戶動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)改變。 2.Container(容器) 容器,類似與作為類的鏡像所創(chuàng)建的實(shí)例,這個(gè)依據(jù)鏡像的模板所創(chuàng)建的實(shí)體。容器可以擁有自己的root文件系統(tǒng)、自己的網(wǎng)絡(luò)配置、自己的進(jìn)程空間。容器內(nèi)部的進(jìn)程運(yùn)行于一個(gè)隔離的環(huán)境。 3.Repository(倉(cāng)庫(kù)) 倉(cāng)庫(kù),類比git的倉(cāng)庫(kù),作為用戶上傳下載的公共站。在構(gòu)建完成鏡像后,可以輕易在宿主機(jī)上運(yùn)行,但要在其他服務(wù)器上使用同個(gè)鏡像,則需要進(jìn)行上傳、分發(fā),這就是Docker Registry的作用。 更多詳情: gitbook/docker_practice
二.安裝Docker
Win10 Docker官網(wǎng)下載 :Install Docker Desktop on Windows Docker僅支持Windows 10 Pro且需要開(kāi)啟Hyper-v。 控制面板-程序與功能-啟用或關(guān)閉Windows功能 請(qǐng)務(wù)必確認(rèn)勾選Hyper-V后再下載Docker安裝包。 PS:若無(wú) window 10 Pro 請(qǐng)自行查詢激活碼或前往某寶搜索。家庭版可憑激活碼直接升級(jí)專業(yè)版無(wú)需重裝系統(tǒng)。
若成功安裝,則應(yīng)該出現(xiàn)以下界面: 進(jìn)入下方官網(wǎng)hub.進(jìn)行注冊(cè)登錄即可。 登錄成功如下圖所示:(請(qǐng)忽略已有的鏡像) PS:若安裝完成后,在啟動(dòng)過(guò)程中遇到Failed to set version to docker-desktop:exit code:-1 會(huì)出現(xiàn)以下錯(cuò)誤: 可以參考:https://zhuanlan.zhihu.com/p/151392411 因?yàn)楫?dāng)時(shí)在安裝過(guò)程中就碰到了這種情況,查了好多資料弄了好久才發(fā)現(xiàn)是因?yàn)長(zhǎng)SP DLL加載到了wsl.exe中才導(dǎo)致WSL 2出現(xiàn)“參考的對(duì)象類型不支持嘗試的操作”。
至此,安裝到此結(jié)束,以下將進(jìn)行環(huán)境搭建…
三.Linux發(fā)行版鏡像下載及相關(guān)軟件(vim\gcc\gdb)的下載
由于docker官方服務(wù)器在國(guó)外,所以要通過(guò)阿里網(wǎng)易等加速器進(jìn)行pull鏡像。 直接右鍵運(yùn)行中的docker進(jìn)入setting,如下在registry-mirrors一欄后加入地址即可: Apply并Restart Docker 現(xiàn)在,進(jìn)入到window終端Terminal: 查看docker 版本: pull CentOS 鏡像:(以CentOS舉例,若要pull其他并行版(ubuntu等)請(qǐng)自行更改) 查看目前鏡像: 運(yùn)行當(dāng)前鏡像:
可以看到終端字頭已經(jīng)變成了[root@c5be11115e53/]#了(c5be11115e53為容器id),這意味這鏡像已經(jīng)創(chuàng)建了容器實(shí)例,至此已進(jìn)入容器。
查看容器狀態(tài): 接下來(lái)將在此容器中安裝vim\gcc\gdb等編輯編譯調(diào)試環(huán)境: 直接通過(guò)指令安裝: 查看vim\gcc\gdb版本(是否成功安裝): 至此,vim/gcc/gdb基本環(huán)境搭建成功。 但別忘了將保存環(huán)境,不然你下次重新打開(kāi),此鏡像將重置為初始centos鏡像(不保存用戶動(dòng)態(tài)數(shù)據(jù))。 先退出容器,運(yùn)用commit命令保存鏡像環(huán)境配置:
其中,-m指定說(shuō)明信息;-a指定用戶信息;85918ed65ed4代表容器的id;***/centos:latest指定目標(biāo)鏡像的用戶名、倉(cāng)庫(kù)名和 tag 信息。用戶名使用注冊(cè)docker時(shí)的id即可。 此后,可以直接啟動(dòng)新創(chuàng)建的鏡像: 請(qǐng)自行更換命令中的倉(cāng)庫(kù)名及id即可。 若想在宿主機(jī)上配置后在其他服務(wù)器使用?那就push到docker hub 中: 下次在其他服務(wù)器上,直接安裝好docker,配置好加速器,登錄自己的賬號(hào),直接docker pull ***/centos:latest即可把你現(xiàn)在push到docker hub中的鏡像pull下來(lái)。若需要再更新環(huán)境配置,再同理進(jìn)行push即可。
結(jié)語(yǔ)
至此本文已經(jīng)結(jié)束,這只是一篇簡(jiǎn)單的分享,有錯(cuò)請(qǐng)大佬們及時(shí)指正,想要再深入docker及l(fā)inux環(huán)境編程就靠自己啦!
References
https://blog.csdn.net/S_gy_Zetrov/article/details/78164266 https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217 https://www.cnblogs.com/ECJTUACM-873284962/ https://blog.csdn.net/weixin_45413689/article/details/111567875
來(lái)源:https://www./content-3-827951.html