不少開發人員的桌面環境還都是Mac,Windows,可是咱們的服務大多跑在Linux上,因此搭建一個Linux環境用來平時學習和調試就頗有必要了。linux
每每你們在Mac或Windows環境下裝Linux無非兩種途徑,要麼雙系統,要麼用虛擬機。其實這兩種方法都多多少少有一些弊病:git
本文來帶你get一個全新技能,用Docker來構建你本身的Linux學習環境。Docker環境有許多好處:docker
下面咱們就一塊兒嘗試一下吧。shell
準備工做很簡單,下載安裝Docker,官方網站有無腦雙擊安裝包,這個再簡單不過了,另外一個準備工做就是加大你的帶寬,跑起來吧!ubuntu
Dockerfile一個配置文件,用來告訴Docker你須要構建什麼樣的容器鏡像vim
第一步咱們要作的是,建立一個目錄好比my-awesome-linux
等等的項目目錄,而後添加一個空文件Dockerfile
。文件的內容以下:緩存
很簡單吧?只須要兩行。 第一行告訴Docker我須要一個ubuntu:16.04
版本的鏡像環境。 第二行告訴Docker這個鏡像的啓動命令是shell
,ok了,接下來咱們一塊兒見證奇蹟!在終端中輸入:bash
$docker build -t my-awesome-linux .
工具
balabalaba……,你能夠去衝幾杯咖啡,取決於你的網速🙃,等鏡像就構建好,你能夠經過docker images
看到你剛剛構建好的鏡像。本地鏡像比較多的時候能夠用grep
命令來過濾:學習
$docker images | grep 'my-awesome-linux
有了這個鏡像,咱們就能夠在任何安裝Docker的環境中運行他了,那好比咱們在本地運行一下看看:
$docker run -it my-awesome-linux bash
你會看到你進入了一個新的shell環境,你跑一下$ls
看看,是否是很酷!一個ubuntu環境就這麼簡單的出來了。
固然這還不夠,上面的步驟只是一個簡單的版本,要想秀同窗一臉,沒有定製化怎麼能開心呢。接下來咱們就看看如何定製化咱們這個最酷的linux環境!你能夠先想一想腦海中那個最酷的Linux畫面,各類很牛的命令行工具,各類系統調優工具,配置好的vim等等😎。
你能夠接着在上面的shell環境中運行apt-get update && apt-get install git
,這樣就能夠安裝你須要的各類軟件了,跟從零打造一個本身的linux環境沒什麼區別。可是我不推薦你這麼作,由於在Docker容器內部新建立的文件會隨着容器的銷燬而銷燬,因此一旦你的容器掛了,你以前的努力就白費了(至少目前是,若是你不知道docker commit
的話)。其實就算你會用docker commit
我也不推薦你這樣作,由於咱們把咱們安裝的每個依賴,都完完整整的記錄到Dockerfile中,可以經過git對這個鏡像不斷的升級優化和調整才更符合規範。
那咱們就看看如何用Dockerfile來定製咱們的鏡像。首先咱們在Dockerfile中添加兩行:
咱們添加了兩行RUN開頭的指令,這個指令的意思是:在基礎鏡像環境之上運行這個指令。
聰明的你必定想到這兩個命令用一行就能夠了爲何咱們要用兩行呢?其實我這裏也有個當心機,我故意拆成了兩行:
Dockerfile中的全部指令都是能夠緩存的,按照文件中從上至下的順序,若是某一層(即指令)沒有變更,那麼
docker build
時能夠利用以前的緩存。
這樣能夠加快構建速度。因此筆者比較懶,就不去列舉你須要經過RUN來安裝的全部包了,你腦海中有利用緩存加快構建的概念就行了。
最後,仍是$docker build -t my-awesome-linux .
,衝杯咖啡,回來就構建好了,你能夠接着用上面的run
方法來測試你安裝的那些軟件了,很酷吧!並且當你在別的主機上運行這個鏡像的時候,這些軟件也都是安裝好的。
到了這裏你已經學會了完整構建一個屬於本身的linux環境的完整路徑,因爲篇幅過長,咱們把更多能夠定製化的部分放到下一篇中。