Skip to footer content
USING IRONSECUREDOC

Docker Compose Build (Developer Tutorial)

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.

Frequently Asked Questions

What is Docker?

Docker is an open-source platform that simplifies the process of developing, deploying, and running applications using containerization. It packages an application with its dependencies, enabling consistent execution across diverse environments.

How does Docker work?

Docker Daemon handles the creation, management, and monitoring of containers by using Docker images from a registry. It creates isolated containers that share the host OS kernel, ensuring the application runs with its dependencies.

What is Docker Compose?

Docker Compose allows management of multi-container Docker applications using a single file, 'docker-compose.yml'. It simplifies configurations of services, images, networks, and volumes, enabling single command management.

What are the prerequisites for creating a React JS application with ASP.NET Core using Docker?

You need Visual Studio 2022 or newer with web, ASP.NET, Node.js development, and Docker Support workloads, and Docker Desktop installed and running.

How is a secure document processing tool used with Docker?

IronSecureDoc can be pulled as a Docker image and run within a container. It allows document operations like redaction and encryption through its REST API, enhancing secure document handling in applications.

Why is Docker Compose beneficial for complex applications?

Docker Compose is advantageous for complex applications like microservices, as it manages multiple containers and coordinates services and dependencies, ensuring consistent development and production environments.

How do you add Docker support to a Visual Studio project?

After creating a project, right-click the project node in Visual Studio and select Add > Docker Support. Choose the container name and type to enhance the project with Docker capabilities.

How can a secure document processing tool enhance application efficiency and reliability?

By integrating with Docker Compose, IronSecureDoc enhances applications requiring secure document handling. It manages dependencies and services, ensuring security and scalability in containerized environments.

How do you run a secure document processing tool in a Docker container?

Pull the IronSecureDoc Docker image with 'docker pull' command and use 'docker container run' to launch it, specifying necessary environment variables like license key and ports.

What command is used to encrypt a document with a secure document processing tool?

Use a POST request to the IronSecureDoc API with the 'curl' command, specifying the local file path and encryption parameters to encrypt a document.

Chaknith Bin
Software Engineer
Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience.
Talk to an Expert Five Star Trust Score Rating

Ready to Get Started?