Docker介紹 與基本指令說明 - Docker系列第1集

如果你是第一次接觸Docker,那麼這系列的文章非常適合你,這個系列會帶讀者從 Docker介紹 ,並透過Docker建立一個Python Flask的網站應用程式,這篇文章則是先做Docker介紹,以及說明Docker的基本操作。

1. Docker介紹

1.1 Docker 是什麼?

在講Docker之前,想先跟各位說明虛擬機器 (Virtual Machine, VM)

相信讀者在玩遊戲時,或者是在做一些實驗時,可能會需要兩台電腦,但在以前的時代,擁有兩台電腦是相當奢侈的事,筆者高中玩遊戲想要雙開,都是透過虛擬機器,在自己的電腦透過VMware的軟體安裝第二個Windows作業系統。

而Docker的Container與VM的差異如下圖,VM會建立很多個Guest OS,這些OS會占用許多資源

因此Docker 目的就是將應用程式與硬體基礎架構分離。

1.2 為什麼需要Docker

使用Docker,會有幾個好處:

  1. Docker容器啟動超快,而VM打開就跟開機一樣需要時間載入作業系統
  2. 一台主機可以執行數千個Docker容器
  3. 可以更快速的交付和部署,一次建立跟設定,在任何有裝Docker的電腦上都可以運作
  4. 管理簡單

1.3 Docker Image與Container說明

Docker 有兩個最重要的名詞:

  1. Image: 映像檔
    • Image 就像是一張光碟,只要放入光碟機,就可以運行裡面的應用程式。
    • Image 中,可以包含一個完整的Ubuntu作業系統,但裡面只有安裝使用者需要的應用程式。
    • 可以透過Dockerfile建立 屬於自己的Image,或是直接到Docker Repository下載別人建立的Image直接使用。
  2. Container: 容器
    • 執行Image產生的東西,就稱為容器
    • 容器可以被啟動、開始、停止、刪除
    • 可以把容器當成一個簡易版的OS環境,包含要運行的應用程式

2. Docker 基本指令介紹

這裡筆者會介紹關於Image跟Container的基本操作,其他的指令則會留到以後文章介紹。

介紹前筆者建議讀者先下載Docker,跟著操作會比較好理解唷! 下載的方式請讀者參考官網或自行google囉!

2.1 新增並啟動容器

docker run -t -i ubuntu:14.04 /bin/echo 'Hello world'
 
docker run
建立並執行container,執行完畢後,會回到下指令的地方,而該container會是結束的狀態

 
-t
讓Docker提供一個虛擬終端機

-i
使用互動模式,在互動模式下就如同在使用ubuntu的Terminal一般,ctrl+D則可以離開

ubuntu:14.04
前面是Image的名稱,後面則是Image的版本。
若本機沒有該Image的話,則會從遠端的repository下載,預設是Docker Hub。
 
/bin/echo 'Hello world'
則是容器啟動後執行的指令
 
 

2.2 查看及移除容器

docker ps -a


docker ps
檢視container的ID、Image、使用指令、建立時間、狀態、使用的Port及名稱等等

-a
檢視所有container,若不給定此參數,則只會顯示執行中的container

docker rm 1fb28dbee08d


docker rm
刪除container,只有非執行中的container才能夠刪除

1fb28dbee08d
container的ID,也可以用container的名稱刪除

若一直執行run的話,會造成container數量持續增加,會造成管理上的困難,若沒有要再使用,就刪了吧。

2.3 下載及移除Image

docker images

列出本地所有Image

docker search busybox

在Docker Hub上查詢busybox這個Image

docker pull busybox

下載busybox這個Image

docker rmi busybox

移除busybox這個Image

2.4 建立、啟動及停止容器

docker create -i -t --name foo busybox

使用busybox這個Image,建立名稱為 foo的容器

其中 -i -t 與docker run的-i -t功能一致

--name
則是會顯示在docker ps的NAMES欄,必須是唯一。

docker start -i foo

啟動名為foo的containter,-i同樣是互動模式

docker stop foo

停止foo這個container

在每個步驟結束,都可以使用2.2學會的docker ps檢視目前container的狀態唷!

聰明的你應該已經發現了!!

docker run其實就是docker pull + docker create + docker start
取得對應的Image,建立container,最後啟動container

3. 結論

謝謝各位讀者看到這裡,以上介紹了Docker的基本概念以及基本指令,接下來的文章會再繼續往 透過Docker建立一個Python Flask的網站應用程式 的方向邁進唷,敬請期待。

若你有任何覺得好用的套件或是任何建議,也歡迎您在下方留言告訴我以及分享給其他人唷

若你覺得文章對你很有幫助,歡迎在網頁右方填入你的email訂閱本站唷

1 thought on “Docker介紹 與基本指令說明 - Docker系列第1集”

  1. Pingback: Docker環境建立 與小技巧 - Docker系列第2集 - ZaTalk Zavier的技術雜技

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。