天天看點

docker學習(1) 安裝

docker是啥就不多講了,簡言之就是更輕量、更牛叉的新一代虛拟機技術。下面是安裝步驟:

一、mac/windows平台的安裝

docker是在linux核心基礎上發展而來的,無法直接運作在mac/windows上,需要借助docker-machine工具,先在mac/windows上建一個linux的虛拟機,然後才能繼續玩下去。預設内置的虛拟機引擎是Oracle的免費軟體VirtualBox,可支援vmware fusion之類的商業軟體。

1.1 下載下傳docker toolbox

安裝過程很簡單,一路Next就可以了,唯一要注意的是最後一個界面:

docker學習(1) 安裝

docker toolbox提供了二種運作方式,終端指令行及圖形界面,建議初學者選擇圖形界面,以降低學習難度。

進入後,會要求先建立一個docker hub的賬号,新增賬號完成郵箱驗證後,就能進入了,docker hub上提供了大量的docker鏡像檔案(可以了解各種虛拟機的模闆,不過建議翻~*牆,否則速度奇慢,甚至打不開),基本上可以滿足各種要求,比如:需要一個持續內建的虛拟機,可以直接使用jenkins鏡像,需要一個mysql,可以直接使用mysql鏡像...

docker學習(1) 安裝

上面的腳本并沒有删除virtualbox,如果連virtualbox也要解除安裝,自行到Application面闆裡,把virtualbox拖到垃圾箱裡即可。  

1.2 下載下傳鏡像

先選一個小點兒的鏡像感受下,比如:用kitematic/hello-world-nginx測試下nginx

docker學習(1) 安裝

1.3 一些正常操作

下圖是KI的GUI界面,打紅圈的地方可以直接操作,工具欄裡的Start點選一下,把nginx容器運作起來

docker學習(1) 安裝

點選上圖中"浏覽nginx首頁"的按鈕,就可以直接在浏覽器裡看到nginx首頁了,很友善吧!工具欄裡的STOP/RESTART這些按鈕看名字就知道用途了,不再啰嗦。

可以有同學注意到了,浏覽器裡的位址類似:http://192.168.99.100:32774,如果想知道為啥是這個IP及端口,可以看下Ports頁,如下圖:

docker學習(1) 安裝

上圖的意思是,将docker容器中的80端口,映射到虛拟機的32774端口,那麼問題來了,192.168.99.100又是哪裡來的?

docker學習(1) 安裝

點選左下角的DOCKER CLI,就能進入docker終端,然後運作:

會顯示出目前建立的虛拟機(還記得本文最開頭說的,mac上不能直接運作docker,必須先建立一個linux虛拟機吧),輸出的default就是虛拟機的名字,然後再運作:

就能看到virtual box給虛拟機default配置設定的IP.  繼續,點選下圖中的Exec,将進入nginx docker容器的bash指令行模式:

docker學習(1) 安裝

輸入nginx -V檢視配置檔案的位置:

docker學習(1) 安裝

可以看出配置檔案為/etc/nginx/nginx.conf,用cat指令檢視一下:

docker學習(1) 安裝

從上圖看,網站的根目錄為/website_files,回到KI中,點選Volumns标簽

docker學習(1) 安裝

可以看到實際是上把mac本機的~/Documents/Kitematic/hello-world-nginx/website_files 映射到docker容器執行個體中的/website_files,大家可以嘗試把mac本機~/Documents/Kitematic/hello-world-nginx/website_files 中的index.html修改下,再重新整理下浏覽器中nginx頁面,應該馬上就能看到效果了。

1.4 docker 指令行的秘密

如果直接在mac本機打開一個終端,然後輸入docker ps之類的指令,會提示

但是從KI界面點選DOCKER CLI進入終端後,再輸入docker ps,能正常顯示正在運作的容器資訊:

docker學習(1) 安裝

原因在于:通過KI進入終端後,會先執行

大家在docker CLI終端裡,按一下向上的箭頭就能發現這個秘密了,把這一行長長的指令換行整理一下,

并沒有什麼特别之處,就是定義了幾個bash變量而已,上面這一段不用死記,可以簡化成:

第二行執行完以後,會輸出:

注意最後一行,按提示複制 eval $(docker-machine env default),然後執行一下,bash終端就有docker的上下文環境,然後執行docker ps之類的,就不會報錯了。  

類似的,點選頂部工具欄上的EXEC,實際上等效于

換行整理一下: 

隻是多了最後一行,是以上面這一段相當于:

二、linux平台的安裝(以centos為例)  

注意:centos要求7以上版本,低版本的核心docker不支援。

3行代碼就搞定了,其中第1行,是從國内daocloud公司下載下傳的,如果你想從官網下載下傳,可以改成 sudo yum install docker  或 curl -sSL https://get.docker.com/ | sh, 安裝完成後,執行:

檢視docker deamon狀态,如果有active(running)字樣輸出,表示docker運作正常.

參考文章:

<a href="https://docs.docker.com/engine/installation/centos/" target="_blank">https://docs.docker.com/engine/installation/centos/</a>

繼續閱讀