跳過到頁腳內容
使用 IRONSECUREDOC

Docker 從映像啟動容器(開發者教程)

什麼是 Docker?

Docker是一個開源平台,它可以在輕量級、可移植的容器中自動部署和管理應用程式。 容器將應用程式及其依賴項(包括庫和設定檔)打包在一起,使其能夠在不同的環境中一致地運行。 這種一致性使得開發和測試更加直接,因為應用程式可以在各種系統上以相同的方式運作——無論是在開發人員的筆記型電腦上、伺服器上還是在雲端環境中。 應用程式管理的可擴充性意味著有效率地開發、交付和運行容器,而 Docker 正好可以實現這一點。

Docker 從映像啟動容器(開發者教學):圖 1 - Docker

Docker映像讓開發人員更容易指定一致的執行環境。 大多數預先建置映像檔都可以在名為 Docker Hub 的開放式映像倉庫中找到,開發者可以直接使用或進行自訂。對於涉及多個容器的應用,可以使用 Docker Compose 等工具來編排容器,而 Kubernetes 則可以管理更複雜的擴充和自動化。 Docker 已成為軟體開發和 DevOps 中不可或缺的工具。

什麼是 Docker 容器?

Docker 容器本質上是一個應用程序,它將所有依賴項(例如庫、二進位和設定檔)打包成一個輕量級的獨立可執行實體。 隔離設計的容器運行在主機作業系統核心之上,避免受到任何其他正在運行的軟體的干擾。 由於易於啟動、停止或刪除,它們非常適合測試、部署和擴展。

Docker 容器特性

-隔離:容器在隔離的環境中運作; 即使應用程式使用不同的依賴項或函式庫,它們之間也不會發生衝突。 -輕量級:容器共享宿主機作業系統內核,因此它們體積小,啟動速度比虛擬機器快。 -可移植性:容器具有確定性,可以使用 Docker 在任何系統上運行,從而確保開發、測試和生產環境之間的一致性。 -可擴展性:容器可以輕鬆複製和擴展,支援微服務的快速部署和管理。 -資源效率:容器比虛擬機器消耗的資源更少,從而可以實現更高的密度和更有效率的運算資源利用。

什麼是 Docker 映像?

Docker映像像是一種用來建立容器的藍圖。 它是唯讀的,並且是分層的,詳細說明了運行應用程式所需的系統檔案和依賴項。 Dockerfile 用於建立映像,指定如何建置 Docker 映像,其中可能涉及安裝軟體或複製檔案等任務。 Dockerfile 的每個變更都會建立一個新的映像層,從而保持效率和模組化。

Docker映像的特性

-多層堆疊:使用 Dockerfile 分層建置映像。 Dockerfile 中的每個指令都會新增一個圖層,因此應該會最佳化映像,使其只重建已變更的圖層。 -可重複使用性: Ubuntu 或 Node.js 等基礎映像可以在不同專案中重複使用,從而節省開發時間和資源。 -版本控制:圖像可以新增版本標籤,以便在需要時更容易回滾到先前的版本。 -模組化:對影像的變更是增量式的,無需重建整個影像即可進行直接更新。 -可在 Docker Hub 上取得:公有和私有映像倉庫方便鏡像的共用和部署。

如何建立 Docker 容器

Dockerfile 是一個文字文件,提供建立 Docker 映像的指令。 在這個檔案中,您可以指定基礎鏡像、依賴項、應用程式程式碼、環境變數以及執行應用程式的命令。 以下是一個簡單的例子:

# Use an official Node.js runtime as a parent image
FROM node:18

# Set the working directory in the container
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json /app
RUN npm install

# Copy the rest of the application code
COPY . /app

# Expose the application’s port
EXPOSE 3000

# Define the command to run the application
CMD ["node", "app.js"]

建置 Docker 映像

使用 Dockerfile 建立 Docker 映像。 在終端機命令列中,從包含 Dockerfile 的目錄執行以下命令:

請確保在執行以下命令之前已安裝 Docker Desktop。

docker build -t my-app .
docker build -t my-app .
SHELL

此指令會建立一個名為my-app映像。 若要確認已創建,請執行:

docker images
docker images
SHELL

運行 Docker 容器

透過映像,您可以建立 Docker 容器,然後使用docker run命令執行它。 Docker守護程序將以分離模式(後台)或前台模式啟動並監控該進程。

docker run -d -p 3000:3000 --name my-running-app my-app
docker run -d -p 3000:3000 --name my-running-app my-app
SHELL

-d :以分離模式運作容器。 -p 3000:3000 :將主機的 3000 連接埠對應到容器的 3000 連接埠。

  • --name my-running-app : 為容器指派使用者定義的名稱。

驗證容器

若要檢查正在執行的 Docker 容器,請使用:

docker ps
docker ps
SHELL

Docker 從映像啟動容器(開發者教學):圖 2 - 運行 Docker 容器

上述命令顯示正在運行的容器的詳細信息,包括容器 ID、名稱、鏡像名稱等。

停止並移除容器

# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
SHELL

Docker 從映像啟動容器(開發者教學):圖 3 - 停止容器

IronSecureDoc是什麼?

IronSecureDoc Docker 是 Iron Software 推出的容器化文件處理解決方案,可在 Docker 環境中自動處理文檔,無需人工幹預。 它提供複雜的文件工作流程和最大限度的資料保護,包括對 PDF 和文件文件進行加密、數位簽章、解密、浮水印等功能。 它確保跨平台的一致且可擴展的隔離部署,使其適用於 DevOps 和 CI/CD 管道整合。

! Docker 從映像啟動容器(開發者教學):圖 4 - IronSecureDoc:PDF 安全與合規伺服器

這種容器化方法增強了需要自動化和高安全性的應用程式中的文件處理能力,並且與微服務和雲端原生環境相容。 IronSecureDoc 對於需要在受控且可移植的 Docker 環境中建立可靠的自動文件處理應用程式的開發人員來說尤其有用。

安裝並執行 IronSecureDoc

從命令提示字元或終端機視窗執行以下命令,從儲存庫下載 IronSecureDoc Docker 映像:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker 從映像啟動容器(開發者教學):圖 5 - 下載 IronSecureDoc 映像

拉取 Docker 映像後,執行另一個指令來啟動 IronSecureDoc 容器。

為 IronSecureDoc 建立新容器

docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

上述docker run指令建立了一個 IronSecureDoc 容器實例。

Docker 從映像啟動容器(開發者教學):圖 6 - 新容器

使用 IronSecureDoc 容器

IronSecureDoc 使用戶能夠透過其 REST API 安裝和執行 Docker 來編輯、認證或加密檔案。

Docker 從映像啟動容器(開發者教學):圖 7 - SecureDoc Web API

例如,要加密文檔,您可以向 IronSecureDoc API 發出 POST 要求:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

這會將文件轉發給 IronSecureDoc,後者會相應地處理和加密資料。

結論

簡單來說,Docker 簡化了應用程式部署,因為開發人員可以從映像建立容器,從而確保在可移植和可擴展的環境中保持一致性。 這樣可以實現跨平台應用程式的高效運行,並促進資源利用,從而增強 DevOps 和 CI/CD 管線。

同樣,IronSecureDoc Docker 利用 Docker 的容器化架構提供安全、自動化的文件處理解決方案。 Docker 和 IronSecureDoc 共同為在現代軟體開發中建置安全、可擴展的應用程式提供了強大的工具。 有關 IronSecureDoc 許可的更多信息,請點擊此許可頁面;有關 Iron Software 眾多產品的詳細信息,請訪問庫套件頁面

常見問題解答

什麼是 Docker,為什麼它對開發人員很重要?

Docker 是一個開放源碼平台,可在容器中自動部署和管理應用程式。它將應用程式與其相依性一併打包,確保在不同環境下的一致運作,從而簡化開發、測試和擴充。

Docker 映像如何促進應用程式部署?

Docker 映像是建立容器的唯讀藍圖。它們定義了執行應用程式所需的系統檔案和相依性,可輕鬆共用和部署。映像可從 Docker Hub 等註冊中心儲存與存取。

建立和執行 Docker 容器的關鍵步驟是什麼?

若要建立並執行 Docker 容器,您必須先撰寫 Dockerfile,指定基本映像和相依性。然後,從 Dockerfile 建立 Docker 映像檔,並使用 docker run 指令來建立和啟動容器。

IronSecureDoc 如何增強 Docker 中的文件處理能力?

IronSecureDoc 是基於 Docker 的解決方案,可透過加密和數位簽章等功能自動處理文件。它可確保 Docker 容器內的工作流程安全且可擴充,非常適合整合至 DevOps 和 CI/CD 管道。

Docker 容器對應用程式開發有什麼好處?

Docker 容器提供隔離、輕量操作、可攜性和資源效率。它們可確保跨環境執行一致的應用程式、支援快速部署,並簡化微服務的管理。

開發人員如何使用 Docker 確保文件處理的安全性?

開發人員可以使用 IronSecureDoc 在 Docker 容器中自動進行安全的文件處理。它提供加密、數位簽署和其他安全功能,可加強文件工作流程的保護和完整性。

Docker Hub 在容器部署中扮演什麼角色?

Docker Hub 是預先建立的 Docker 映像的開放式註冊中心,讓開發人員可以存取和分享映像。這有助於輕鬆自訂和部署應用程式,加快開發流程。

Docker 如何提高應用程式的可擴展性和效率?

Docker 可透過簡易的容器複製與管理,改善可擴充性。這可讓應用程式快速有效地擴充,優化資源利用率並支援現代軟體開發實務。

Dockerfile 在容器建立中的作用是什麼?

Dockerfile 用於定義 Docker 容器的基本映像、相依性、應用程式碼和執行指令。它是建立 Docker 映像的藍圖,然後可用於建立容器。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。