フッターコンテンツにスキップ
IRONSECUREDOCを使用する

Docker Composeビルド(開発者向けチュートリアル)

What is Docker?

Docker is an open-source platform that simplifies the process of developing, deploying, and running applications using containerization. Containers are ultralight, portable units that package an application along with its dependencies, enabling consistent execution across diverse environments, from a developer's local system to production servers. Unlike traditional virtual machines, containers utilize the host operating system's kernel, enhancing their speed and efficiency.

Docker Compose Build (Developer Tutorial): Figure 1

Docker offers a virtualized template through Docker images to create and manage sets of containers. It includes the Docker Hub, a form of container image repository. The great appeal of this technology is its scalability, portability, and efficiency, making it highly popular in DevOps and cloud-centric development workflows.

How does Docker work?

  • The Docker Daemon listens for requests from the Docker Client, which may include docker build, docker pull, or docker run.
  • Docker Daemon handles the creation, management, and monitoring of containers. It also retrieves the required Docker images from a registry, such as Docker Hub.
  • Using the downloaded image, the daemon creates an isolated container, effectively a running instance of the application.
  • Containers share the host machine's OS kernel but remain isolated from each other, enabling the software to operate in a unique environment with its dependencies.
+--------------------+
|   Docker Client    |
|  (CLI/API)         |
+--------------------+
          |
          v
+--------------------+               +---------------------+
|   Docker Daemon    |   -------->   |   Docker Registry   |
|  (manages resources|               |  (stores images)    |
|  & runs containers)|               +---------------------+
+--------------------+
          |
          v
+---------------------+
|      Container      |  
|  (App Instance)     |
+---------------------+
          |
          v
+---------------------+
| Docker Image        |  
| (App Blueprint)     |
+---------------------+

What is Docker Compose?

Docker Compose provides an easy way to manage a multi-container Docker application using a single file: docker-compose.yml. This YAML file enables the configuration of multiple services, specifying aspects like Docker images, environment variables, networks, and volumes. You can utilize Docker Compose commands such as docker-compose up or docker-compose down to manage all containers in an application with a single action.

+--------------------------+
|   docker-compose.yml     |  (Configuration file)
+--------------------------+
            |
            v
+----------------+    +----------------+    +----------------+
|   Service 1    |    |   Service 2    |    |   Service 3    |
|  (e.g. web)    |    |  (e.g. db)     |    |  (e.g. cache)  |
+----------------+    +----------------+    +----------------+
            |                  |                   |
            -----------------------------------------
                         Docker Application

Docker Compose is particularly advantageous for complex applications like microservices with numerous container instances. It is effectively used across development, testing, and production settings.

Create a New React JS application With ASP.NET Core

Follow these steps to create a new Visual Studio React application with an ASP.NET Core backend and add Docker support:

Prerequisites

  • Visual Studio: Ensure Visual Studio 2022 or newer is installed with necessary workloads:
    • Web development and ASP.NET
    • Node.js development (React)
    • Docker Support
  • Docker Desktop: Must be installed and running.

Create New Project

  1. Open Visual Studio and choose New Project from the menu.

    Docker Compose Build (Developer Tutorial): Figure 2

  2. Search for "React and ASP.NET Core Web Application" in the "Create a new project" dialog and select it. Click Next.

    Docker Compose Build (Developer Tutorial): Figure 3

  3. Provide a name for the project, select a solution name, and choose the save location. Click Next.

    Docker Compose Build (Developer Tutorial): Figure 4

  4. Ensure Docker Support is enabled. Select the desired framework and click Create.

    Docker Compose Build (Developer Tutorial): Figure 5

  5. After project creation, add Docker support by right-clicking the project node and selecting Add > Docker Support.

    Docker Compose Build (Developer Tutorial): Figure 6

  6. Choose the container name and type, then click Ok.

    Docker Compose Build (Developer Tutorial): Figure 7

Now that the newly created project is added to the Docker container, Docker Compose commands can run it. Below is a sample output generated from the React JS client-side code.

Docker Compose Build (Developer Tutorial): Figure 8

Below is the API server-side code executing from the Docker container.

Docker Compose Build (Developer Tutorial): Figure 9

IronSecureDoc

IronSecureDoc enables developers to efficiently embed secure document processing into containerized applications. With Docker's support, encapsulate your ASP.NET Core app using IronSecureDoc, encouraging seamless deployment and scaling. Build a Dockerfile to integrate IronSecureDoc with your ASP.NET Core app, along with necessary scripts or configurations.

Docker Compose Build (Developer Tutorial): Figure 10 - IronSecureDoc

Moreover, a docker-compose.yml file can outline service dependencies and environment variables for easy access, assisting in handling document security tasks efficiently in different deployment settings. Ensuring the install and configuration of IronSecureDoc, like Docker, is essential for delivering features like document encryption and redaction.

Installing and Running IronSecureDoc

Retrieve the IronSecureDoc Docker image with this command:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Compose Build (Developer Tutorial): Figure 11

After pulling the image, use the following command to launch IronSecureDoc in a new container:

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

Docker Compose Build (Developer Tutorial): Figure 12

Using IronSecureDoc with Docker Container

IronSecureDoc's REST API allows document operations like redaction, certification, and encryption once installed and running in Docker. For more on API endpoints, check the documentation.

To encrypt a document, send a POST request to the IronSecureDoc API:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

This command submits the document to IronSecureDoc for encryption.

Conclusion

Integrating Docker Compose with IronSecureDoc greatly enhances the efficiency and reliability of applications requiring secure document handling. Docker Compose effectively manages multi-container applications, streamlining dependencies and services coordination, including IronSecureDoc, which ensures development environment consistency, simplifies configurations, and boosts scalability.

In this setup, developers can fully leverage document security features, like encryption and redaction, within a containerized framework. Overall, combining Docker Compose with IronSecureDoc enriches the development process, offering a secure, efficient method for handling sensitive documents in modern applications. For information on IronSecureDoc licensing, visit this page. Click here to explore more Iron Software products.

よくある質問

Dockerとは何か、およびそれがアプリケーションのデプロイをどのように促進するか。

Dockerは、コンテナを使用してアプリケーションの開発とデプロイを簡略化するオープンソースのプラットフォームです。コンテナは、アプリケーションとそのすべての依存関係をパッケージ化した軽量でポータブルな単位であり、さまざまな環境での一貫した実行を保証します。

Docker Composeは、複雑なアプリケーションの管理にどのように役立ちますか?

Docker Composeは、`docker-compose.yml`ファイルを使用してマルチコンテナDockerアプリケーションを管理するツールです。サービス、イメージ、ネットワーク、およびボリュームの構成と調整を簡素化し、マイクロサービスのような複雑なアプリケーションの管理に最適です。

Visual StudioでDockerを使用してASP.NET CoreによるReact JSアプリケーションを作成する手順は?

Dockerを使用してVisual StudioでASP.NET CoreによるReact JSアプリケーションを作成するには、必要なワークロードとDocker DesktopがインストールされたVisual Studio 2022以降を用意してください。プロジェクトを作成し、Dockerサポートを追加し、Docker Composeのコマンドを使用してアプリケーションを管理します。

IronSecureDocは、安全なドキュメント処理のためにDockerとどのように統合されますか?

IronSecureDocは、そのDockerイメージをプルし、コンテナ内で実行することでDockerと統合できます。このセットアップにより、REST APIを介した暗号化や編集といった安全なドキュメント処理操作が可能となり、コンテナ化されたアプリケーションのセキュリティが向上します。

IronSecureDocによるドキュメント処理にDocker Composeを使用することの利点は何ですか?

Docker ComposeをIronSecureDocと統合することで、依存関係とサービスをコンテナ化された環境で管理することにより、アプリケーションの効率性と信頼性が向上します。これは、堅牢なドキュメントセキュリティを必要とするアプリケーションにとって重要な、安全でスケーラブルなドキュメント処理を保証します。

既存のVisual StudioプロジェクトにDockerサポートを追加するにはどうすればよいですか?

既存のVisual StudioプロジェクトにDockerサポートを追加するには、プロジェクトノードを右クリックし、[追加] > [Dockerサポート]を選択し、適切なコンテナオプションを選択します。これにより、プロジェクトにDockerの機能が統合され、コンテナ化された開発が可能になります。

DockerコンテナでIronSecureDocを実行するプロセスは何ですか?

DockerコンテナでIronSecureDocを実行するには、`docker pull`コマンドを使用してイメージを取得し、ライセンスキーやポートなどの必要な環境変数と共に`docker container run`を実行します。このセットアップにより、コンテナ内での安全なドキュメント処理が可能となります。

Docker環境でIronSecureDocを使用してドキュメントを暗号化する方法は?

IronSecureDocを使用してドキュメントを暗号化するには、そのAPIにPOSTリクエストを送信します。ローカルファイルパスと暗号化パラメータを指定して、`curl`コマンドを使用してドキュメントをアップロードします。この操作により、Dockerコンテナ内でドキュメントが安全に保護されます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。