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 映像檔。

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

Creating Katacoda Scenarios

Thanks for creating Katacoda scenarios. This tab is designed to help you as an author have quick access the information you need when creating scenarios.

This tab will not be visible to users.

Here are some useful links to get you started.

Running Katacoda Workshops

If you are planning to use Katacoda for workshops, please contact [email protected] to arrange capacity.

Debugging Scenarios

Below is the response from any background scripts run or files uploaded. This stream can aid debugging scenarios.

If you still need assistance, please contact [email protected]