如何在 Docker 中使用 IronPDF 引擎 | IronPDF

以遠端容器方式運行 IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.Slim NuGet 套件添加到您的項目中。

https://www.nuget.org/packages/IronPdf.Slim/

注意: IronPdfIronPdf.LinuxIronPdf.MacOs軟體包都包含 IronPdf.Slim。

為了減小應用程式的大小,我們建議只安裝 IronPdf.Slim。 IronPdf.Native.Chrome.xxx套件已不再使用,您可以將其從項目中移除。

確定所需的容器版本

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

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-version.cs
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
$vbLabelText   $csharpLabel

為 Docker 容器配置 IronPDF

無需 Docker Compose

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

  • 必須安裝 Docker。

Setup

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

或下載特定版本(建議)

docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
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
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL

使用 Docker Compose

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

Setup

  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'
  1. 將應用程式(myconsoleapp)中 IronPdfEngine 的位址設定為"myironpdfengine:33350"
  2. 運行 docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL

連接到 IronPdfEngine

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

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use.cs
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");
$vbLabelText   $csharpLabel

連接類型

您可以根據您希望建立的連線類型指派多個IronPdfConnectionType

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

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

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

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

自訂:要完全控制和自訂連接,您可以使用此選項。 此選項使用您自訂的Grpc.Core.ChannelBase ,而不是上面定義的其他選項。 開發人員可以透過建立新的Grpc.Core.Channel物件或使用Grpc.Net.Client.GrpcChannel.ForAddress(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

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use-grpc.cs
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();
$vbLabelText   $csharpLabel

使用 WithCustomChannel 的替代方法

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

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

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use-grpc-alt.cs
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();
$vbLabelText   $csharpLabel

在 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"
    }

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

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

推薦設定:

  • 啟動類型: AWS Fargate
  • 公網 IP:測試時開啟,生產環境關閉。 安全性和AWS網路方面的問題需要您自行解決。
  1. 盡情享用! IronPdfEngine docker 已在您的 AWS 中啟動並運行!

[{i:(不支援水平縮放。 請參閱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 容器執行個體中啟動並執行!

[{i:(不支援水平縮放。 請參閱IronPdfEngine 限制以了解更多資訊。


在 AWS ECR 公用庫中取得 IronPdfEngine

先決條件

  • 必須安裝 Docker。

設定

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

或下載特定版本(建議)

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

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

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

請參閱"更新程式碼以使用 IronPdfEngine "部分,以了解如何設定 IronPDF 用戶端以使用 IronPdfEngine。


從應用市場取得 IronPdfEngine

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

Azure Marketplace

Azure Marketplace

Setup

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

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

:path=/static-assets/pdf/content-code-examples/how-to/pull-run-ironpdfengine-azure-marketplace.cs
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");
$vbLabelText   $csharpLabel

AWS Marketplace

AWS Marketplace

先決條件

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

Setup

  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
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
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")
}

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

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

地位

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

使用 Kubernetes 設定進行健康檢查

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

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

常見問題解答

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

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

在 Docker 中使用 IronPdfEngine 有什麼好處?

在 Docker 中使用 IronPdfEngine 可以提供預先安裝且可靠的環境,減少依賴性問題,並確保所有必要的元件(如 Chrome 和 Pdfium 二進位)都可用。

如何使用 Docker Compose 設定 IronPdfEngine?

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

在 AWS ECS 上部署 IronPdfEngine 需要哪些步驟?

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

如何從 AWS ECR 公用庫中取得 IronPdfEngine?

存取 AWS ECR 公用庫,找到 IronPdfEngine 鏡像,然後依照提供的指令拉取並執行容器。

是否可以使用 Azure Marketplace 中的 IronPdfEngine?

是的,IronPdfEngine 已在 Azure Marketplace 上架。您可以依照 Marketplace 頁面上的設定說明部署 Docker 容器。

使用 IronPdfEngine 時應該注意哪些限制?

IronPdfEngine 不支援水平擴展。在規劃部署時,請務必考慮此限制,以確保其滿足應用程式的需求。

如何使用 Docker 有效率地處理 PDF 產生和處理任務?

在 Docker 容器中部署 IronPdfEngine,以有效管理 PDF 產生和操作任務,利用 Docker 的功能來處理依賴關係並確保環境的一致性。

在 Azure 容器執行個體上部署 IronPdfEngine 有哪些需求?

若要在 Azure 容器執行個體上部署,請確保您擁有 Azure 帳戶,並拉取 IronPdfEngine Docker 映像進行部署。

柯蒂斯·週
技術撰稿人

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

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

準備好開始了嗎?
Nuget 下載 17,012,929 | 版本: 2025.12 剛剛發布