在 Docker 容器中設定 IronOCR

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

在 C# 中對影像或 PDF 檔案進行 OCR 辨識嗎?

IronOCR 現在完全支援 Docker,包括適用於 Linux 和 Windows 的 Azure Docker 容器。

Docker Linux AWS Windows

為什麼要使用 Docker?

Docker 使開發人員能夠輕鬆地將任何應用程式打包、交付和運行為輕量級、可移植、自包含的容器,該容器幾乎可以在任何地方運行。

IronOCR 和 Linux 入門

如果您是第一次接觸 Docker 與 .NET,我們推薦您閱讀這篇關於設定 Docker 偵錯以及如何將其與 Visual Studio 專案整合的優秀文章。 https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019

我們也強烈建議您閱讀我們的IronOCR Linux 設定和相容性指南

推薦的 Linux Docker 發行版

我們推薦使用以下最新的 64 位元 Linux 作業系統,以便"輕鬆配置"IronPDF。

  • Ubuntu 20
  • Ubuntu 18
  • Debian 11
  • Debian 10 [目前是 Microsoft Azure 的預設 Linux 發行版]

我們建議使用微軟官方的 Docker 映像。 其他 Linux 發行版也部分受支持,但可能需要使用apt-get進行手動設定。 請參閱我們的" Linux 手動安裝指南"。

本文檔中包含適用於 Ubuntu 和 Debian 的 Docker 檔案:

IronOCR Linux Docker 安裝要點

使用我們的 NuGet 套件

我們建議使用IronOcr NuGet 套件。 它在 Windows、macOS 和 Linux 系統上進行開發時均可正常運作。

Install-Package IronOcr

Ubuntu Linux Dockerfiles

Docker Linux Ubuntu

Ubuntu 20 和 .NET 5

# Use the base runtime image for Ubuntu 20 with .NET runtime
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Ubuntu 20 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Ubuntu 20 搭載 .NET 3.1 LTS

# Use the base runtime image for Ubuntu 20 with .NET runtime
FROM mcr.microsoft.com/dotnet/runtime:3.1-focal AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Ubuntu 20 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:3.1-focal AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Ubuntu 18 搭載 .NET 3.1 LTS

# Use the base runtime image for Ubuntu 18 with .NET runtime
FROM mcr.microsoft.com/dotnet/runtime:3.1-bionic AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Ubuntu 18 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Debian Linux Dockerfiles

Docker Linux Debian

Debian 11 及 .NET 5

# Use the base runtime image for Debian 10 with .NET runtime
FROM mcr.microsoft.com/dotnet/aspnet:5.0-bullseye-slim AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Debian 10 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Debian 11 及 .NET 3.1 LTS

# Use the base runtime image for Debian 10 with .NET runtime
FROM mcr.microsoft.com/dotnet/aspnet:3.1-bullseye-slim AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Debian 10 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye-slim AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Debian 10 和 .NET 5

# Use the base runtime image for Debian 10 with .NET runtime
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Debian 10 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

Debian 10 及 .NET 3.1 LTS

# Use the base runtime image for Debian 10 with .NET runtime
FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base
WORKDIR /app

# Install necessary packages
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Use the base development image for Debian 10 with .NET SDK
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build the project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish the project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run the application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]

常見問題解答

如何在 Docker 容器中部署 C# OCR 應用程式?

您可以通過使用 IronOCR 在 Docker 容器中部署 C# OCR 應用程式,這是一個與 Docker 集成的 C# OCR 庫。 您需要設置 Docker 容器,安裝必要的套件,如 apt-utilslibgdipluslibc6-dev,並使用 Microsoft 的官方 Docker 映像以獲得最佳性能。

哪些操作系統最適合在 Docker 中運行 IronOCR?

為在 Docker 中運行 IronOCR,建議使用最新的 64 位 Linux 發行版,如 Ubuntu 20、Ubuntu 18、Debian 11 和 Debian 10,因為它們提供了易於配置和支持的特性。

如何配置 IronOCR 在 Azure Docker 容器上?

要在 Azure Docker 容器上配置 IronOCR,您需要與其他 Docker 環境相同的步驟。 使用 IronOcr NuGet 套件,設置推薦的 Linux 發行版,並確保所有必要的依賴項都包含在 Dockerfile 中。

在 Docker 中使用 .NET 5 設置 IronOCR 的步驟是什麼?

要在 Docker 中使用 .NET 5 設置 IronOCR,您需要創建一個 Dockerfile,該文件安裝 IronOcr NuGet 套件,添加 required packages 如 apt-utilslibgdiplus,並從 Microsoft's 官方 .NET 5 Docker 映像中選擇基礎映像。

IronOCR 可以在 Windows 的 Docker 環境中使用嗎?

是的,IronOCR 可以在 Windows 的 Docker 環境中使用。 該過程涉及使用 IronOcr NuGet 套件並配置 Dockerfile,包括必要的依賴項和特定於 Windows 操作系統的配置。

使用 Docker 託管 .NET OCR 應用程式有哪些好處?

使用 Docker 託管 .NET OCR 應用程式可以輕易部署、更好的資源管理以及更大的跨不同環境的可攜性。 Docker 容器是獨立的,確保應用程式不管在哪裡部署都能穩定運行。

Docker 中非推薦的 Linux 發行版本需要手動配置嗎?

是的,如果您使用的是其他推薦之外的 Linux 發行版(Ubuntu 20、Ubuntu 18、Debian 11、Debian 10),則可能需要使用 apt-get 進行手動配置。 您可以在 IronOCR 提供的“Linux 手動設置”指南中獲得手動設置的指導。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 5,384,824 | 版本: 2026.2 剛剛發布