跳至頁尾內容
使用 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 如何提高應用程式的可擴充性和效率?

Docker 透過簡化容器的複製和管理,提高了可擴充性。這使得應用程式能夠快速且有效率地擴展,優化資源利用率,並支援現代軟體開發實踐。

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

Dockerfile 用於定義 Docker 容器的基礎映像、依賴項、應用程式程式碼和執行命令。它可作為建置 Docker 映像的藍圖,而這些映像隨後可用於建立容器。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。