更新應用程式
目錄
在 第 1 部分 中,您將待辦事項應用程式容器化。在本部分中,您將更新應用程式和映像檔。您還將學習如何停止和移除容器。
更新原始碼
在以下步驟中,您將把沒有任何待辦事項項目時的「空白文字」更改為「您還沒有任何待辦事項項目!請在上方新增一個!」
在
src/static/js/app.js
檔案中,將第 56 行更新為使用新的空白文字。- <p className="text-center">No items yet! Add one above!</p> + <p className="text-center">You have no todo items yet! Add one above!</p>
使用
docker build
指令建置您更新版本的映像檔。$ docker build -t getting-started .
使用更新的程式碼啟動新的容器。
$ docker run -dp 127.0.0.1:3000:3000 getting-started
您可能會看到如下錯誤
docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 127.0.0.1:3000 failed: port is already allocated.
發生錯誤是因為當舊容器仍在執行時,您無法啟動新的容器。原因是舊容器已在使用主機的埠 3000,而機器上只有一個處理程序(包含容器)可以監聽特定埠。要解決此問題,您需要移除舊容器。
移除舊容器
要移除容器,您首先需要將其停止。停止後,您就可以將其移除。您可以使用 CLI 或 Docker Desktop 的圖形介面移除舊容器。選擇您最熟悉的方式。
使用 CLI 移除容器
使用
docker ps
指令取得容器的 ID。$ docker ps
使用
docker stop
指令停止容器。將<容器 ID>
替換為從docker ps
取得的 ID。$ docker stop <the-container-id>
容器停止後,您可以使用
docker rm
指令將其移除。$ docker rm <the-container-id>
**注意**
您可以透過在
docker rm
指令中新增force
旗標,在單一指令中停止並移除容器。例如:docker rm -f <容器 ID>
使用 Docker Desktop 移除容器
- 開啟 Docker Desktop 的**容器**檢視。
- 選取您要刪除的容器**動作**欄位下的垃圾桶圖示。
- 在確認對話方塊中,選取**永久刪除**。
啟動已更新的應用程式容器
現在,使用
docker run
指令啟動您更新的應用程式。$ docker run -dp 127.0.0.1:3000:3000 getting-started