1.1 快速上手

版本說明:本節範例基於 Docker v29.x 編寫。範例中使用的 nginx:alpine 映象標籤為示範用途,請查閱 Docker Hub - nginx 確認最新可用版本。

開始前請先完成 第 3 章安裝 Docker,並確認 docker versiondocker run hello-world 可以正常執行。若你只是先瀏覽流程,可以讀完本節後再回到安裝章實踐。

本節將透過一個簡單的 Web 應用例子,帶你快速體驗 Docker 的核心流程:建立映象、執行容器。

為什麼選擇 Nginx + HTML 作為入門例子?

在學習 Docker 之前,我們先來理解為什麼這個例子適合初學者。Docker 的核心價值在於一致性交付:在相同映象、CPU 架構、核心能力、設定和外部依賴都滿足的前提下,應用行為可以保持高度一致。這個 Nginx + 靜態 HTML 的例子之所以被廣泛採用,是因為它展現了 Docker 工作流的三個核心階段:

  1. 映象定義(Image Layer):透過 Dockerfile 描述如何把應用打包成一個自包含的單元
  2. 映象建立(Build):執行 docker build,Docker 根據 Dockerfile 逐層建立映象
  3. 容器執行(Runtime):透過 docker run 啟動容器實例,應用真正開始提供服務

Nginx 是一個輕量級、使用廣泛的 Web 伺服器,學習完這個例子後,你可以輕鬆擴充套件到部署 Node.js、Python、Go 等任何語言的應用。

1.1.1 準備程式碼

建立一個名為 hello-docker 的資料夾,並在其中建立一個 index.html 檔案:

<h1>Hello, Docker!</h1>

1.1.2 編寫 Dockerfile

在同級目錄下建立一個名為 Dockerfile (無後綴) 的檔案:

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html

1.1.3 建立映象

開啟終端,進入該目錄,執行建立指令:

$ docker build -t my-hello-world .
  • docker build:建立指令
  • -t my-hello-world:給映象起個名字 (標籤)
  • .:指定上下文路徑為當前目錄

1.1.4 執行容器

使用剛才建立的映象啟動一個容器:

$ docker run -d -p 8080:80 my-hello-world
  • docker run:執行指令
  • -d:後台執行
  • -p 8080:80:將宿主機的 8080 連接埠對映到容器的 80 連接埠

1.1.5 訪問測試

開啟瀏覽器訪問 http://localhost:8080,你應該能看到 『Hello, Docker!』。

1.1.6 清理

停止並刪除容器:

# 檢視正在執行的容器 ID

$ docker ps

# 停止容器

$ docker stop <CONTAINER_ID>

# 刪除容器

$ docker rm <CONTAINER_ID>

恭喜!你已經完成了第一次 Docker 實戰。接下來請閱讀 Docker 核心概念做深入瞭解。

第 5 页,共 196 页
使用 mdPress 构建