取得應用程式在執行應用程式之前,您需要將應用程式原始碼取得至您的機器上。
使用以下指令複製 getting-started-app 儲存庫
檢視已複製儲存庫的內容。您應該會看到以下檔案和子目錄。
要建構映像檔,您需要使用 Dockerfile。Dockerfile 只是一個沒有副檔名的文字檔,其中包含指令碼。Docker 使用此指令碼來建構容器映像檔。
在 `getting-started-app` 目錄中,與 `package.json` 檔案相同的位置,建立一個名為 `Dockerfile` 的檔案,其中包含以下內容
此 Dockerfile 從 `node:lts-alpine` 基礎映像檔開始,這是一個輕量級的 Linux 映像檔,預先安裝了 Node.js 和 Yarn 套件管理器。它會將所有原始碼複製到映像檔中,安裝必要的依賴項,並啟動應用程式。
使用以下指令建構映像檔
在終端機中,確認您位於 `getting-started-app` 目錄中。將 `/path/to/getting-started-app` 替換為您的 `getting-started-app` 目錄的路徑。
建構映像檔。
`docker build` 指令使用 Dockerfile 建構新的映像檔。您可能已經注意到 Docker 下載了很多「層」。這是因為您指示建構器您想要從 `node:lts-alpine` 映像檔開始。但是,由於您的機器上沒有該映像檔,因此 Docker 需要下載它。
Docker 下載映像檔後,Dockerfile 中的指令會複製您的應用程式,並使用 `yarn` 安裝應用程式的依賴項。`CMD` 指令會指定從此映像檔啟動容器時要執行的預設指令。
最後,`-t` 旗標會標記您的映像檔。您可以將其視為最終映像檔的人類可讀名稱。由於您將映像檔命名為 `getting-started`,因此您可以在執行容器時參考該映像檔。
`docker build` 指令結尾的 `.` 告訴 Docker 它應該在目前目錄中尋找 `Dockerfile`。
現在您已擁有一個映像檔,您可以使用 `docker run` 指令在容器中執行應用程式。
使用 `docker run` 指令執行您的容器,並指定您剛才建立的映像檔的名稱
`-d` 旗標(`--detach` 的縮寫)會在背景中執行容器。這表示 Docker 會啟動您的容器並將您返回終端機提示字元。
`-p` 旗標(`--publish` 的縮寫)會在主機和容器之間建立埠映射。`-p` 旗標採用 `主機:容器` 格式的字串值,其中 `主機` 是主機上的位址,而 `容器` 是容器上的埠。此指令會將容器的埠 3000 發佈到主機上的 `127.0.0.1:3000` (`localhost:3000`)。如果沒有埠映射,您將無法從主機存取應用程式。
幾秒鐘後,在您的網路瀏覽器中開啟 http://localhost:3000
新增一兩個項目,並查看其是否如您預期般運作。您可以將項目標記為已完成並移除它們。您的前端已成功將項目儲存在後端。
此時,您擁有一個正在執行的待辦事項清單管理器,其中包含一些項目。
如果您快速查看您的容器,您應該會看到至少有一個正在執行的容器正在使用 `getting-started` 映像檔,並且在埠 `3000` 上。要查看您的容器,您可以使用 CLI 或 Docker Desktop 的圖形介面。
在終端機中執行 `docker ps` 指令以列出您的容器。
應該會出現類似以下的輸出。
在 Docker Desktop 中,選擇「容器」索引標籤以查看您的容器清單。
在本節中,您學習了有關建立 Dockerfile 以建構映像檔的基本知識。建構映像檔後,您啟動了一個容器並看到了正在執行的應用程式。
相關資訊
接下來,您將修改您的應用程式,並學習如何使用新的映像檔更新正在執行的應用程式。過程中,您還會學習一些其他有用的指令。