Difficulty: Beginner
Estimated Time: 10 minutes

在這個實驗環境中,我們將探討如何開始使用 Docker 來啟動並連接到容器。整個操作環境已經配置好 Docker Engine 和 Client,可以通過命令行存取。若要在自己的環境中安裝 Docker,請參考官方說明文件

此正在運行 Docker 的主機名稱為 docker。如果您要存取任何服務,請務必使用 docker 來取代 localhost 或 0.0.0.0。

###什麼是 Docker? Docker 官方網頁的解釋是“一個開放的平台,方便讓開發人員和系統管理者建置、部署,和執行分散式應用程式。” docker.com/whatisdocker/

Docker 能讓您執行容器,容器是一種沙箱程序執行著應用程式,並依附運行在伺服器作業系統之上。在容器中的應用程式會認為本身是直接在主機上運行,而應用程式會認為自己是此主機上的唯一程序,且主機可同時執行多個獨立運作的容器。由於它們是沙箱隔離,可避免依賴性間衝突發生的可能性,並簡化整個部署過程,因為所有的安裝和完成配置之時間點都能提早進行。

Docker 是由三個重要元件所組成,第一個是 Docker Engine,它提供了一種便捷方式來啟動各種不同作業系統平台中的容器。第二個是 Docker Client,可以讓您跟 Engine 控制溝通。第三個是公開的 Docker Registry 負責記錄儲存 Docker 映像檔。這些映像檔可用來啟動或延伸擴展,以便滿足您自身需求及部署應用系統。

這裡,我們示範了如何以前景模式或背景模式啟動容器,綁定連接埠和掛載目錄。這些指令皆為開發階段和營運環境會經常用到的基礎操作。

我們將會使用這些指令來應用到之後的實驗情境,以便學習到更多關於 Docker 的知識。

在接下來的實驗操作中,我們將研究如何建置您自己的 Docker 映像檔。

Don’t stop now! The next scenario will only take about 10 minutes to complete.

Docker 容器操作

Step 1 of 6

步驟 1 - 啟動一個容器

以 Docker 來說,所有容器都是基於 Docker 映像檔來啟動,這些映像檔包含程序啟動所需要的一切(檔案系統、相關函示庫);主機上完全不需要任何配置設定或安裝相依程式。

要啟動一個容器,您可以自行建立 Docker 映像檔,或者如同這練習內容,使用由官方或其他軟體社群所建立的現存映像檔。這類事先建立好的映像檔可以在 hub.docker.com 上搜尋,或者透過 docker search <image-name> 指令。舉例來說,要找尋 Redis 的相關映像檔(一種務物件關聯式資料庫系統),您可以使用 docker search -s 1 redis | more

-s 1 參數是指定只顯示最少為一顆星以上的映像檔才能顯示,Docker 使用者們會在 Docker Hub 網站的專案上給予推薦星級評價,這裡建議您使用 "Official" 的映像檔,其經過 Docker 官方認證過所建立的,或者選一個最多星評的映像檔。

##任務 要完成這步驟,必須用官方的 Redis 映像檔以背景模式來啟動一個容器。

在使用 search 判斷識別使用哪個映像檔,接著您可已使用 docker run <options> <image-name> 啟動它。在預設情況下, Docker 將會以前景模式來執行這容器,要讓容器執行在背景模式,您需要指定 -d 選項,如: docker run -d <other-options> <image-name>

在目前階段,您仍未有任何的本地端映像檔,所以 docker 將會從 Docker Hub registry (registry 是專門存放 Docker 映像檔的伺服器,可自行架設於組織內部)上下載,如果您啟動第二個 Redis 容器,就會沿用本地端的映像檔。

##專業建議 所有容器都應該賦予一個名稱和編號以便在之後的 Docker 指令上使用,亦可輸入容器 ID 的前幾碼來識別,在啟動容器時,可透過 --name 參數來設定易於辨識的名稱,像是 --name redis