跳過到頁腳內容
使用 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 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我