既存のDockerコンテナにIronPDFを追加する
IronPDF for .NET Standardは、LinuxおよびWindows用のAzure Docker Containersを含むDockerを完全にサポートするようになりました。
IronPDFを別のDockerコンテナとしてデプロイしますか? 詳細を確認するIronPdfエンジン.





なぜAzureでDockerを使用するのですか?
優れたエンタープライズスケーラビリティに加えて、Azure上のDockerコンテナは通常のWebアプリよりも多くの権限を享受します。
これは、システムがGDI+グラフィックスにアクセスできるようになるため、SVGフォントのレンダリングを可能にします。
IronPDFとLinuxの基本
Dockerと .NET が初めての場合は、この優れた記事をお勧めします。DockerデバッグとVisual Studioプロジェクトとの統合の設定.
以下もぜひお読みくださいIronPDF Linuxのセットアップと互換性ガイド
推奨されるLinux Dockerディストリビューション
以下の最新64ビットLinux OSを推奨します。「簡単な構成」のためにIronPDFを使用してください。
- ウブントゥ 22
- Ubuntu 20
- ウブントゥ 18
- デビアン11
-
デビアン 10[現在のMicrosoft AzureデフォルトLinuxディストロ]_
- CentOS 8
(Note: In this context, specific software or version names like CentOS 8 typically remain unchanged in translation).
-
Amazon AWS Linux 2IronPDFのAWS Lambdaセットアップガイドをお読みください
マイクロソフトの使用をお勧めします公式Dockerイメージ . 他のLinuxディストリビューションも一部はサポートされていますが、apt-getを使用する手動構成が必要な場合があります。 こちらをご覧ください「Linux 手動設定ガイド
UbuntuとDebianの動作するDockerファイルがこのドキュメントに含まれています。
IronPDF Linux Docker インストール基礎
Linuxに最適化されたNuGetパッケージを使用する
以下の内容を日本語に翻訳してください:
以下のライセンスを使用することをお勧めします。IronPdf.LinuxNuGet パッケージの代わりに通常のIronPDFディスク容量を節約し、Dockerインスタンスを起動するときにアセットがダウンロードされるのを避けるためのパッケージです。 心配しないでください、WindowsやmacOSでの開発でもちゃんと動作します - ただしLinuxに最適化されています。
Install-Package IronPdf.Linux
別の解決策は、単に追加することですIronPdf.Native.Chrome.Linuxレギュラーの上にIronPDFNuGet パッケージ。
Install-Package IronPdf.Native.Chrome.Linux
自動依存関係インストールを避ける
多くのユーザーは、LinuxAndDockerDependenciesAutoConfig
を false に設定したときに、Linux および Docker でより良い結果が得られると報告しています。 それは、apt-getスタイルのパッケージマネージャーが既にDockerファイルに必要な前提条件をインストールしているためです。
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
GPUアクセラレーションを無効にする
Linux Dockerコンテナは、しばしばGPUへのアクセスを持っていません。 GPUアクセラレーションはデフォルトで無効になっています。 Dockerデプロイメント用には、ChromeGpuModes.Enabledを有効にしている場合、無効にすることを強くお勧めします。
IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
「事前」初期化
オプションで、IronPdf.Installation.Initialize
を呼び出すこともできます。()IronPDFを手動で起動するためのメソッド。 Dockerインスタンスが初めてIronPDFを使用する際、前提条件のダウンロードに時間がかかる場合があります。 そのシナリオを回避するために、インスタンスが作成されたときにこのコードを呼び出すことができます:
IronPdf.Installation.Initialize();
Ubuntu Linux Dockerファイル


Ubuntu 22と.NET 8
ユーザーを 'app' から 'root' に変更してください。 これにより、ライブラリに十分な権限が付与されていることが保証されます。 この変更により、IronCefSubprocessに対して「rwx」を設定する必要がなくなります。
# base image (Ubuntu 22) | |
FROM mcr.microsoft.com/dotnet/runtime:8.0-jammy | |
USER root | |
WORKDIR /app | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
ARG BUILD_CONFIGURATION=Release | |
WORKDIR /src | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "./Example/./Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "./Example.csproj" -c $BUILD_CONFIGURATION -o /app/build | |
# publish project | |
RUN dotnet publish "./Example.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false | |
WORKDIR /app/publish | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Ubuntu 22 と .NET 7
# base image (Ubuntu 22) | |
FROM mcr.microsoft.com/dotnet/sdk:7.0-jammy | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libxkbcommon-dev libgdiplus | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Ubuntu 20 と .NET 6
# base image (Ubuntu 20) | |
FROM mcr.microsoft.com/dotnet/sdk:6.0-focal | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Ubuntu 20 と .NET 5
# base image (Ubuntu 20) | |
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Ubuntu 20 と .NET 3.1 LTS
# base image (Ubuntu 20) | |
FROM mcr.microsoft.com/dotnet/sdk:3.1-focal | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Ubuntu 18 と .NET 3.1 LTS
# base image (Ubuntu 18) | |
FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence-dev libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian Linux Dockerファイル


Debian 12 と .NET 8
# base image (Debian 12) | |
FROM mcr.microsoft.com/dotnet/sdk:8.0 | |
USER root | |
WORKDIR /app | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
ARG BUILD_CONFIGURATION=Release | |
WORKDIR /src | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "./Example/./Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "./Example.csproj" -c $BUILD_CONFIGURATION -o /app/build | |
# publish project | |
RUN dotnet publish "./Example.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false | |
WORKDIR /app/publish | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 11と.NET 7
# base image (Debian 11) | |
FROM mcr.microsoft.com/dotnet/sdk:7.0 | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libxkbcommon-dev libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 11 と .NET 6
# base image (Debian 11) | |
FROM mcr.microsoft.com/dotnet/sdk:6.0 | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 11 と .NET 5
# base image (Debian 11) | |
FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 11 と .NET 3.1 LTS
# base image (Debian 11) | |
FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 10と.NET 5
# base image (Debian 10) | |
FROM mcr.microsoft.com/dotnet/sdk:5.0 | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Debian 10 と .NET 3.1 LTS
# base image (Debian 10) | |
FROM mcr.microsoft.com/dotnet/sdk:3.1 | |
WORKDIR /src | |
# install necessary packages | |
RUN apt update \ | |
&& apt install -y libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libappindicator3-1 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev | |
# restore NuGet packages | |
COPY ["Example/Example.csproj", "Example/"] | |
RUN dotnet restore "Example/Example.csproj" | |
# build project | |
COPY . . | |
WORKDIR "/src/Example" | |
RUN dotnet build "Example.csproj" -c Release -o /app/build | |
# publish project | |
RUN dotnet publish "Example.csproj" -c Release -o /app/publish | |
WORKDIR /app/publish | |
# update permissions | |
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess | |
# run app | |
ENTRYPOINT ["dotnet", "Example.dll"] |
Alpine Linux Dockerファイル
Alpine LinuxでIronPDFを実行することはサポートされていません。 できればそうしたいのですが、できません。 率直に言って、私たちはAlpineが好きで、このプロジェクトが存続し、成長し続けることを願っています。 2023年現在、Alpineは依然として時代遅れの「musl」C言語ライブラリを使用しており、これによりChromium開発者はこのOSを完全にサポートすることができていません。
.NET 6でIronPdfEngineを使用するためのAlpine Docker
IronPdfは、すべてのIronPdf機能を含むコンテナイメージを提供します。 これは、Alpine上で実行されているプロジェクトがIronPdfEngineコンテナに接続することでIronPDFの機能にアクセスできるようにします。
ステップ1: IronPdf エンジンドッカーイメージをプルして実行します
以下のコマンドをターミナルで実行して、IronPdfエンジンドッカーイメージをプルして実行してください:
docker pull ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
ステップ2: コンソールアプリの設定
新しいコンソールアプリケーションを.NET 6をターゲットにして作成してください。
NuGetパッケージマネージャーを使用して、IronPdf.Slim NuGetパッケージをインストールします。
IronPDF ウィンドウズ ドッカー コンテナ


Windows Docker コンテナは、Azure上でますます人気が高まっています。これは、より高いパフォーマンスとスケーラビリティを提供し、開発者にインスタンスを構成するためのより多くの権限を与えるためです。
IronPDFは、実際にDockerコンテナ内でより魅力的なテキストレンダリングを実行します。(Windows または Linux)Azure上では、グラフィックスライブラリおよび仮想グラフィックスカードへのアクセスレベルが高いためです。
記事「Visual Studio 用 Docker コンテナ ツールは、非常に優れた入門ガイドです。
これは .NET Core 3.1 用の Windows コンテナ Dockerfile の例です
# escape=` | |
FROM mcr.microsoft.com/windows/servercore:ltsc2016 AS baseOS | |
RUN powershell -Command [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -UseBasicParsing -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -InstallDir '/Program Files/dotnet' -Channel 3.1 -Runtime dotnet; Remove-Item -Force dotnet-install.ps1 && setx /M PATH "%PATH%;C:\Program Files\dotnet" | |
COPY . . | |
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base |
Windows Server 2019 .NET 6.0
IronPdfを実行するために必要なすべての依存関係を含む、事前構成済みのWindowsコンテナ。
次の内容にご注意ください。
FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019 AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
COPY . .
WORKDIR "/src/ConsoleApp"
RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM ironsoftwareofficial/windows:2019-net60
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]
ウェブサイトに訪問してくださいDockerリポジトリIronPdfを実行するために追加の事前構成済みイメージを探索するには。