IRONSOFTWAREHOME

以遠端容器方式運行IronPDF

Curtis Chau
Curtis Chau
Updated: 2026年5月19日

IronPdfEngine 是一項獨立服務,可處理 PDF 的建立、寫入、編輯和讀取。 IronPDF Docker 已準備好運行相容版本的IronPDF (v2023.2.x 以上)的 Docker 服務。 這將有助於開發人員消除他們在使用IronPDF時可能遇到的部署問題。

為什麼將IronPDF作為獨立容器運行是個好主意

IronPDF需要 Chrome 和 Pdfium 二進位檔案才能運行,而這兩個檔案體積都非常大(數百 MB)。 它還需要在機器上安裝幾個依賴項。

使用此方法,您的使用者端只會佔用很小一部分空間(以 MB 為單位)。

避免部署問題

正確配置環境/容器以包含所有相依性可能具有挑戰性。 使用IronPDF Docker 容器意味著IronPDF已預先安裝並保證可以正常工作,避免了所有部署和依賴項的麻煩。

版本

IronPDF Docker 標籤是基於 IronPdfEngine 本身的版本。 它與IronPDF產品的版本不同。

每個IronPDF版本都會有其對應的 IronPdfEngine 版本。 版本號碼必須與IronPDF Docker 版本相符。

例如,IronPDF for Java 版本 2023.2.1 需要 IronPdfEngine 版本 2023.2.1。 您不能使用版本不符的 IronPdfEngine 和IronPDF 。


如何使用IronPDF Docker

安裝IronPDF

將IronPDF NuGet套件加入您的專案中。

NuGet

注意:IronPdf.LinuxIronPdf.MacOs 軟體套件都包含IronPDF。

為了減小應用程式的大小,我們建議只安裝IronPDF。 軟體包 IronPdf.Native.Chrome.xxx 已不再使用,因此您可以將其從專案中移除。

確定所需的容器版本

預設情況下,Docker 版IronPDF的版本將與NuGet上IronPDF的目前版本相符。 您可以使用以下程式碼手動檢查版本:

string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;

為 Docker 容器配置IronPDF

無需 Docker Compose

使用上一個步驟中指定的版本來執行 Docker 容器。

  • 必須安裝 Docker。

設定

  1. 前往https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine
  2. 拉取最新的 ironsoftwareofficial/ironpdfengine 鏡像
docker pull ironsoftwareofficial/ironpdfengine
SHELL

或下載特定版本(建議)

docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL
  1. 運行 ironsoftwareofficial/ironpdfengine 容器。

此命令將建立一個容器,並在後台使用連接埠 33350 運行它。

docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL

如何配置 IronPdfEngine 運行時參數?

運行時參數可以直接作為鏡像名稱後的 key=value 對傳遞給容器。 這些配置用於在不重新建構鏡像的情況下配置引擎行為。

docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine:2025.3.6 \
  license_key="YOUR_LICENSE_KEY" \
  enable_debug=true \
  chrome_browser_limit=8
SHELL

可使用的參數如下:

範圍型別Default描述
portint33350gRPC監聽埠
license_keystring-IronPDF許可證密鑰
enable_debugboolfalse啟用完整除錯日誌
log_pathpath-日誌檔案路徑(也支援完整除錯日誌記錄)
logging_modestringConsole日誌模式:無、控制台、自訂、偵錯輸出視窗、檔案、全部
chrome_browser_limitint-最大並發 Chrome 瀏覽器實例數
chrome_cache_pathpath-Chrome瀏覽器快取目錄
chrome_gpu_modeint0GPU模式:0 停用,1 硬體加速,2 硬體全加速,3 軟體加速
chrome_custom_deployment_dirpath-用於 Chrome 部署二進位檔案的自訂目錄
temp_folder_pathpath-覆蓋暫存目錄
skip_shutdownboolfalse防止引擎怠速時熄火
skip_initializationboolfalse啟動時跳過 Chrome/Pdfium 初始化
keep_aliveboolfalse客戶端斷開連線後,保持引擎運轉。
single_processbool-以單進程模式執行 Chrome
linux_and_docker_auto_configbooltrue自動配置 Linux/Docker 依賴項(由 Docker 入口點自動設定)
send_anonymous_analytics_and_crash_databool-啟用或停用匿名遙測
請注意: Docker 入口點會自動將 linux_and_docker_auto_config 參數設為 true。 您無需手動傳遞。 除非您的主機提供 GPU 直通,否則 Docker 中的 chrome_gpu_mode 應保持 0(停用)。

也可以使用 IRONPDF_ENGINE_LICENSE_KEY 環境變數,透過 Docker Compose 中的 -eenvironment: 來設定許可證金鑰。 當命令列參數和環境變數都設定時,命令列參數優先。

生產範例:

docker run -d --restart=unless-stopped \
  -p 33350:33350 \
  -e IRONPDF_ENGINE_LICENSE_KEY=MY_KEY \
  ironsoftwareofficial/ironpdfengine \
  chrome_browser_limit=8 skip_shutdown=true
SHELL

除錯範例:

docker run -p 33350:33350 \
  ironsoftwareofficial/ironpdfengine \
  enable_debug=true log_path=/app/logs/engine.log
SHELL

使用 Docker Compose

關鍵在於建立一個 Docker 網路,使 IronPdfEngine 和你的應用程式能夠相互存取。 設定"depends_on"以確保 IronPdfEngine 在應用程式啟動之前已啟動。

設定

  1. 先建立一個 docker-compose.yml 檔案。使用以下範本設定您的 Docker Compose 檔案:
version: '3.6'
services:
  myironpdfengine:
    container_name: ironpdfengine
    image: ironsoftwareofficial/ironpdfengine:latest
    ports:
      - '33350:33350'
    networks:
      - ironpdf-network
  myconsoleapp:
    container_name: myconsoleapp
    build:
      # enter YOUR project directory path here
      context: ./MyConsoleApp/
      # enter YOUR dockerfile name here, relative to project directory
      dockerfile: Dockerfile
    networks:
      - ironpdf-network
    depends_on:
      myironpdfengine:
        condition: service_started
networks:
  ironpdf-network: 
    driver: 'bridge'
Text
  1. 將應用程式(myconsoleapp)中 IronPdfEngine 的位址設定為"myironpdfengine:33350"
  2. 運行 docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL

連接到 IronPdfEngine

運行你的IronPDF程式碼; 您的應用程式現在可以與 Docker 中的 IronPdfEngine 進行通訊了!

using IronPdf;
using IronPdf.GrpcLayer;

// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);

// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");

連接型別

您可以根據要建立的連線型別指派幾個 IronPdfConnectionType

以下是可供出租的房產清單:

LocalExecutable :要連接到在本機上執行可執行檔的 IronPdfEngine"伺服器",我們使用此選項。 一個簡單的例子是 WinForm 發票應用程式,它可以在本地生成 PDF 文件,而無需依賴雲端服務。

Docker :當嘗試連線到本機或雲端的 Docker 容器時,應使用此選項。

RemoteServer :此選項用於雲端 IronPdfEngine。 它透過 HTTP 或 HTTPS 協定連接到雲端託管(例如 Docker)的 IronPdfEngine 實例。 請注意,由於這是連接到遠端伺服器,因此需要完整的 URL(包括 HTTP 或 HTTPS 協定)。

自訂:要完全控制和自訂連接,您可以使用此選項。 此選項使用您自訂的Grpc.Core.ChannelBase ,而不是上面定義的其他選項。 開發人員可以透過建立新的Grpc.Core.Channel物件或使用**.NET(System.String)**來建立新通道,從而自訂和完全控制 gRPC 通道。

.NET Framework與 NetFrameworkChannel

對於.NET Framework,我們需要不同的設置,因為 gRPC 在.NET Framework專案中的工作方式不同。 若要使此方法生效,請確保已安裝Grpc.Core NuGet套件。 對於此特定設置,我們將使用從Grpc.Core.ChannelBase派生的自訂 gRPC 通道。

讓我們來看這個例子,我們將實現連接通道,使用 IronPDFEngine 建立和儲存 PDF。

由於 gRPC 在.NET Framework專案中的工作方式不同,如果以下程式碼不起作用,請嘗試移除位址中的 <http><https> 前綴。

警告: 請注意,此 pdf.Dispose 在這種情況下是必需的。
using IronPdf;

// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.

// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;

// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);

// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();

// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");

// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");

// 6. Clean up , this is needed to work
pdf.Dispose();

使用 WithCustomChannel 的替代方法

另一種方法是利用 IronPdf.GrpcLayer 提供的 WithCustomChannel 方法。

WithCustomChannel 接受兩個參數,customChannel,即您的自訂 gRPC 通道,以及 metadatametadata 參數是可選的,預設為 null

using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;

// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);

// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
    { "Authorization", "Bearer your_token_here" }
};

// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);

// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");

// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");

// 6. Clean up , this is needed to work
pdf.Dispose();

在 AWS ECS 上部署 IronPdfEngine

先決條件

設定

  1. 建立 ECS 集群。 依照本指南,使用控制台為 Fargate 和 External 啟動型別建立叢集
  2. 建立任務定義。 請依照本指南 使用控制台建立任務定義

推薦設定:

  • AWS Fargate

  • 建議至少配備 1 個虛擬 CPU 和 2 GB 記憶體。 根據您的工作量,如果您處理的 PDF 文件超過 10 頁或遇到較大的負載請求,請選擇更高的等級。 -網路模式:awsvpc -連接埠映射

    {
      "containerPort": 33350,
      "hostPort": 33350,
      "protocol": "tcp",
      "appProtocol": "grpc"
    }
    JSON

-圖片 URI :指向我們提供的任何 IronPdfEngine。 例如,"ironsoftwareofficial/ironpdfengine:2024.1.20"(來自 DockerHub) AWS 權限網路配置需自行負責。 建議啟用 Amazon CloudWatch 。 (Enable logging)

  • 如果要在相同任務定義中部署應用程式容器,則容器啟動順序是必要的。
  1. 運行任務定義。 您可以將任務定義作為任務服務運行。 請依照本指南使用控制台建立服務

推薦設定:

  • 啟動型別: AWS Fargate
  • 公網 IP:測試時開啟,生產時關閉。 安全性和AWS網路方面的問題需要您自行解決。
  1. 盡情享用! IronPdfEngine docker 已在您的 AWS 中啟動並運行!
請注意: IronPdfEngine Docker 容器本身不支援水平擴展; 它被設計為單一實例後端服務。使用IronPDF庫(無論是否使用 IronPdfEngine)的應用程式仍然可以透過部署多個應用程式實例進行橫向擴展。 請參閱IronPdfEngine 的限制以了解更多詳情。

在 Azure 容器執行個體上部署 IronPdfEngine

先決條件

設定

  1. 建立一個 Azure 容器。 請依照此快速入門指南,使用 Azure 入口網站在 Azure 中部署容器執行個體

推薦設定:

-圖片來源:其他登錄檔 -鏡像ironsoftwareofficial/ironpdfengine:2024.1.20 (來自 Docker Hub) 作業系統型別:Linux -規模:至少需要 1 個虛擬 CPU 和 2 GiB 記憶體,或更高 -連接埠:TCP 連接埠 33350

  1. 盡情享用! IronPdfEngine Docker 已在您的 Azure 容器執行個體中啟動並執行!
請注意: IronPdfEngine Docker 容器不支援水平擴展; 它被設計為單一實例後端服務。使用IronPDF庫(無論是否包含 IronPdfEngine)的應用程式仍然可以透過部署多個應用程式實例進行橫向擴展。 請參閱IronPdfEngine 的限制以了解更多資訊。

在 AWS ECR 公用庫中取得 IronPdfEngine

先決條件

  • 必須安裝 Docker。

設定

  1. 前往https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
  2. 拉取 v1m9w8y1/ironpdfengine 鏡像
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
SHELL

或下載特定版本(建議)

docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
SHELL
  1. 運行 ironpdfengine 容器。

此命令將建立一個容器,並在後台使用連接埠 33350 運行它。

docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
SHELL

了解如何設定IronPDF使用者端以使用 IronPdfEngine,請導覽至"更新程式碼以使用 IronPdfEngine "部分。


從應用市場取得 IronPdfEngine

為了幫助您快速上手,我們已在 Azure 和 AWS Marketplace 上部署了 IronPdfEngine。

Azure Marketplace

Azure Marketplace

設定

  1. 前往Azure Marketplace 上的IronPDF Docker 容器。 點選"立即取得"和"繼續"。
  2. 完成"基本資訊"、"叢集詳細資料"和"應用程式詳細資料"以建立 Kubernetes 服務。
  3. 部署完成後,導覽至左側邊欄並選擇 Kubernetes 資源 > 執行指令。 運行以下命令:
kubectl get services
SHELL
Kubernetes 服務 - 執行指令

有了外部 IP 和連接埠資訊,就可以相應地配置 IronPDFEngine 連接。

using IronPdf;
using IronPdf.GrpcLayer;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");

AWS Marketplace

aws marketplace

先決條件

  • 必須安裝 Docker。
  • 必須安裝並登入 AWS CLI。

設定

  1. 前往AWS Marketplace 上的 IronPdfEngine 。 點選"繼續訂閱"。

  2. 接受條款。

接受最終使用者許可協議
  1. 繼續進行配置。
訂閱完成
  1. 拉取 ironpdfengine 鏡像。 此步驟將向您展示拉取 ironpdfengine 鏡像的命令。
啟動此軟體

例如:

aws ecr get-login-password \
    --region us-east-1 | docker login \
    --username AWS \
    --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"    
for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
SHELL
  1. 運行 ironpdfengine 容器。 此命令將建立一個容器,並在後台使用連接埠 33350 運行它。
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
SHELL

IronPdfEngine 健康檢查

檢查 Docker 容器的健康狀況對於確保生產環境中的可靠性和可用性至關重要。 透過檢查 IronPdfEngine Docker 容器,開發人員可以在服務故障時重新啟動服務,並在需求增加時擴展資源,同時還可以監控持續運行的應用程式。

為了檢查 IronPdfEngine 的運作狀況,我們可以向 IronPdfEngine 的相同連接埠(預設為 33350)發送 gRPC 請求,以驗證是否收到回應。

使用 gRPC 進行健康檢查

IronPdfEngine 遵循標準的 gRPC 健康檢查模式,採用以下協議結構。

message HealthCheckRequest {
 string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}
Text

由於我們正在檢查 IronPdfEngine,因此我們將服務名稱替換為 IronPdfEngine

以下是使用Postman和JavaScript向本機 IronPdfEngine 服務發送 gRPC 請求的範例,預設編號為 33350。

地位

從回應中可以看到,狀態回應為 SERVING,表示服務已啟動並正在運作。 如果容器不健康,則狀態回應為 NOT_SERVING

使用 Kubernetes 設定進行健康檢查

對於 Kubernetes 設置,我們可以使用以下方法來檢查服務是否健康。

 livenessProbe:
          exec:
            command:
            - /bin/grpc_health_probe
            - -addr=:33350
            - -rpc-timeout=5s
Text

常見問題

如何使用Docker在C#中將HTML轉換為PDF?

您可以使用IronPDF的Docker設置在C#中將HTML轉換為PDF。在Docker容器中部署IronPdfEngine,並使用RenderHtmlAsPdf之類的方法實現此目的。

在Docker中使用IronPdfEngine的好處是什麼?

在Docker中使用IronPdfEngine提供了一個預先安裝且可靠的環境,減少了相依性問題,並確保像Chrome和Pdfium這樣的必要組件都可用。

如何設置IronPdfEngine與Docker Compose?

建立docker-compose.yml文件,並定義服務和網路。使用depends_on指令確保IronPdfEngine在應用程式之前啟動。

將IronPdfEngine部署到AWS ECS需要哪些步驟?

要在AWS ECS上部署,建立ECS集群,定義任務定義,並使用AWS Fargate進行資源分配。然後,運行您的任務或服務以啟動IronPdfEngine。

如何從AWS ECR公眾庫中拉取IronPdfEngine?

存取AWS ECR公眾庫,找到IronPdfEngine映像,並按照提供的命令來拉取和運行容器。

是否可以從Azure Marketplace使用IronPdfEngine?

是的,IronPdfEngine在Azure Marketplace上可用。您可以按照Marketplace頁面上的設置說明來部署Docker容器。

在使用IronPdfEngine時需要注意什麼限制?

IronPdfEngine Docker容器本身不支持橫向擴展,因為它被設計為單一實例的後端服務。然而,使用IronPDF程式庫(無論有無IronPdfEngine)的應用程式仍可以通過部署多個應用程式實例來橫向擴展。請在計劃部署時考慮這一區別。

如何高效地處理PDF生成和操作任務使用Docker?

將IronPdfEngine部署在Docker容器中,以高效管理PDF生成和操作任務,利用Docker的能力來處理相依性並確保環境一致。

在Azure Container Instances上部署IronPdfEngine的要求是什麼?

要在Azure Container Instances上部署,請確保您擁有Azure帳戶並拉取IronPdfEngine Docker映像進行部署。

Are there specific logging configurations available for IronPdfEngine?

Yes, IronPdfEngine supports various logging configurations, including console, file, and custom modes. This flexibility helps in monitoring and debugging, allowing developers to choose the best method for their needs.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 21,105,021版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用密鑰
不需要信用卡或建立賬戶
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999