将IronPDF作为远程容器运行

2018年八月28日
更新 2025年二月18日
分享:
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;
Dim ironPdfEngineVersion As String = IronPdf.Installation.IronPdfEngineVersion
$vbLabelText   $csharpLabel

设置IronPDF用于Docker容器

无需 Docker Compose

使用上一步中的版本运行 Docker 容器。

  • 必须安装 Docker。

    设置

  1. 访问 https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine

  2. 拉取最新的ironsoftwareofficial/ironpdfengine镜像
docker pull ironsoftwareofficial/ironpdfengine

或拉取特定版本(推荐)

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

    此命令将创建一个容器,并在后台运行,端口号为33350。

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

使用 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"
  1. 在您的应用程序 (myconsoleapp) 内设置 IronPdfEngine 的地址为 "myironpdfengine:33350"

  2. 运行 docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps

连接到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 = new IronPdfConnectionConfiguration();
config.ConnectionType = IronPdfConnectionType.Docker;
IronPdf.Installation.ConnectToIronPdfHost(config);

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

' Configure for Docker container
Private config = New IronPdfConnectionConfiguration()
config.ConnectionType = IronPdfConnectionType.Docker
IronPdf.Installation.ConnectToIronPdfHost(config)

' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
$vbLabelText   $csharpLabel

在 AWS ECS 上部署 IronPdfEngine

先决条件

设置

  1. 创建 ECS 集群。 按照此指南使用控制台为 Fargate 和外部启动类型创建集群

  2. 创建任务定义。 请按照此指南使用控制台创建任务定义

    推荐设置:

    • AWS Fargate
    • 建议最低配置为1个虚拟CPU和2GB内存。 根据您的工作负载,如果您处理的 PDF 文件超过10页或者经历重负载请求,请选择更高的层级。
    • 网络模式:awsvpc
    • 端口映射
    "containerPort": 33350,
    "hostPort": 33350,
    "protocol": "tcp",
    "appProtocol": "grpc"
  • 图像URI:指向我们的任意IronPdfEngine。 例如,“ironsoftwareofficial/ironpdfengine:2024.1.20”(来自DockerHub)
  • AWS权限网络由您自行处理
  • 启用 Amazon CloudWatch 是推荐的。 启用日志记录
  • 容器启动顺序是必要的,如果您想在同一个任务定义中部署您的应用程序容器。
  1. 运行任务定义。 您可以将任务定义作为任务服务来运行。 请按照此指南在 使用控制台创建服务

    推荐设置:

    • 启动类型:AWS Fargate
    • 公网IP:在测试时开启在生产时关闭。 您自己负责安全和AWS网络。
  2. 享受! IronPdfEngine docker 在您的 AWS 上已启动并运行!

    [{i:(横向扩展不被支持。 请参阅IronPdfEngine 限制以获取更多信息。)}]


在 Azure 容器实例上部署 IronPdfEngine

先决条件

设置

  1. 创建 Azure 容器。 请按照此快速入门指南来使用Azure门户部署容器实例

    推荐设置:

    • 图像来源:其他注册表
    • 镜像ironsoftwareofficial/ironpdfengine:2024.1.20(来自Docker Hub)
    • 操作系统类型:Linux
    • 大小:最少 1 个 vCPU 和 2 GiB 内存,或更高
    • 端口:TCP端口33350
  2. 享受! 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:2023.12.6
  1. 运行 ironpdfengine 容器。

    此命令将创建一个容器,并在后台运行,端口号为33350。

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

了解如何通过导航到“更新代码以使用IronPdfEngine”部分来配置IronPdf客户端以使用IronPdfEngine。


从市场获取IronPdfEngine

为了帮助您快速入门,我们已经在 Azure 和 AWS Marketplace 上设置了 IronPdfEngine。

Azure 市场

Azure 市场

设置

  1. 请访问Azure Marketplace 上的 IronPDF Docker Container。 点击“立即获取”和“继续”。

  2. 完成“基础信息”、“集群详情”和“应用详情”以创建 Kubernetes 服务。

  3. 部署完成后,在左侧侧边栏中,转到 Kubernetes 资源 -> 运行命令。 运行以下命令
kubectl get services
Kubernetes 服务 - 运行命令

利用EXTERNAL-IP和PORT(S)的信息,您可以相应地配置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");
Imports IronPdf
Imports IronPdf.GrpcLayer

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

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

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

AWS Marketplace

aws 市场

先决条件

  • 必须安装 Docker。
  • AWS CLI 必须安装并登录。

    设置

  1. 请访问AWS 市场上的 IronPdfEngine。 点击“继续订阅”。

  2. 接受条款。

    接受EULA
  3. 继续前往 Confiuguration。

    完整订阅
  4. 拉取ironpdfengine镜像。 此步骤将向您展示一个命令,用来拉取ironpdfengine镜像。

    启动该软件

    For Example:

    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
  5. 运行 ironpdfengine 容器。 此命令将创建一个容器,并在后台运行,端口号为33350。
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15