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

Docker からイメージでコンテナを起動 (開発者チュートリアル)

Dockerとは?

Dockerは、軽量でポータブルなコンテナ内でアプリケーションを自動的にデプロイおよび管理するオープンソースのプラットフォームです。 コンテナはアプリケーションとその依存関係(ライブラリや設定ファイルを含む)をパッケージ化し、異なる環境でも一貫して動作できるようにします。 この一貫性により、開発とテストがより簡単になります。なぜなら、アプリケーションが開発者のノートパソコン、サーバー、またはクラウド環境など多様なシステム上で同じように動作できるからです。 アプリケーション管理におけるスケーラビリティとは、コンテナを効率的に開発、出荷、実行することを意味し、Dockerがそれを可能にします。

Docker Start Container From Image (Developer Tutorial): Figure 1 - Docker

Dockerイメージは、一貫した実行環境の指定を開発者にとって非常に容易にします。 ほとんどのビルド済みイメージは、Docker Hubと呼ばれるオープンレジストリで見つけることができ、開発者はそれを直接使用またはカスタマイズできます。複数のコンテナを用いるアプリケーションには、Docker Composeのようなツールがコンテナをオーケストレーションし、Kubernetesはさらに複雑なスケーリングと自動化を管理します。 Dockerはソフトウェア開発とDevOpsにおいて不可欠なツールとなりました。

Dockerコンテナとは?

Dockerコンテナは、アプリケーションとそのすべての依存関係(ライブラリ、バイナリ、設定ファイルなど)がパッケージ化され、軽量のスタンドアロン実行可能エンティティとして提供されます。 孤立させた状態で設計されたコンテナは、ホストオペレーティングシステムのカーネルの上で実行され、他の実行中のソフトウェアの干渉を避けます。 簡単に起動、停止、削除ができるため、テスト、デプロイメント、スケーリングに最適です。

Dockerコンテナの特徴

  • 隔離: コンテナは隔離された環境で実行されます; アプリケーションは異なる依存関係やライブラリを使用しても互いに競合しません。
  • 軽量: コンテナはホストオペレーティングシステムのカーネルを共有しているため、小さく、VMよりも起動時間が短いです。
  • ポータブル性: コンテナは決定論的であり、Dockerを使用している任意のシステム上で実行でき、開発、テスト、本番環境にわたっての一貫性を保証します。
  • スケーラビリティ: コンテナは簡単に複製およびスケーリングでき、マイクロサービスの迅速なデプロイメントと管理をサポートします。
  • リソース効率: コンテナはVMよりも少ないリソースを消費し、高い密度とコンピューティングリソースの効率的な利用を可能にします。

Dockerイメージとは?

Dockerイメージは、コンテナを作成するための設計図です。 それは読み取り専用で層化されており、アプリケーションを動作させるために必要なシステムファイルと依存関係を詳述しています。 Dockerfileはイメージを作成するために使用され、Dockerイメージのビルド方法を指定し、ソフトウェアをインストールする、またはファイルをコピーするためのタスクを含むかもしれません。 Dockerfileへのすべての変更は新しいイメージ層を作成し、効率性とモジュール性を維持します。

Dockerイメージの特徴

  • マルチレベルスタック: イメージはDockerfileを使って層ごとにビルドされます。 Dockerfileの各指令は層を追加するので、イメージは変更された層のみを再構築するように最適化されるべきです。
  • 再利用可能性: UbuntuやNode.jsのようなベースイメージは、プロジェクトを跨いで再利用可能であり、開発時間とリソースを節約します。
  • バージョニング: イメージはバージョン管理のためにタグ付けでき、必要に応じて以前のバージョンに戻すのが簡単になります。
  • モジュール性: イメージの変更は増分で行われ、イメージ全体を再構築することなく簡単に更新できます。
  • Docker Hubで利用可能: 公開およびプライベートイメージレジストリにより、イメージの簡単な共有とデプロイメントを可能にします。

Dockerコンテナを作成する方法

Dockerfileは自分のDockerイメージを作成するための指示を提供するテキストファイルです。 このファイルでは、ベースイメージ、依存関係、アプリケーションコード、環境変数、アプリケーションを実行するためのコマンドを指定します。 ここに簡単な例があります。

# Use an official Node.js runtime as a parent image
FROM node:18

# Set the working directory in the container
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json /app
RUN npm install

# Copy the rest of the application code
COPY . /app

# Expose the application’s port
EXPOSE 3000

# Define the command to run the application
CMD ["node", "app.js"]

Dockerイメージのビルド

Dockerfileを使用してDockerイメージを作成します。 Dockerfileを含むディレクトリから、ターミナルコマンドラインで次のように実行します:

以下のコマンドを実行する前に、Docker Desktopがインストールされていることを確認してください。

docker build -t my-app .
docker build -t my-app .
SHELL

このコマンドはmy-appという名前のイメージを作成します。 それが作成されたことを確認するには、以下を実行します:

docker images
docker images
SHELL

Dockerコンテナの実行

イメージがあれば、Dockerコンテナを作成し、次にdocker runコマンドを使ってそれを実行できます。 Dockerデーモンは、分離モード(バックグラウンド)またはフォアグラウンドでプロセスを開始し、監視します。

docker run -d -p 3000:3000 --name my-running-app my-app
docker run -d -p 3000:3000 --name my-running-app my-app
SHELL
  • -d: コンテナを分離モードで実行します。
  • -p 3000:3000: ホストのポート3000をコンテナのポート3000にマッピングします。
  • --name my-running-app: コンテナにユーザー定義の名前を割り当てます。

コンテナの確認

実行中のDockerコンテナを確認するには、次を使用します:

docker ps
docker ps
SHELL

Docker Start Container From Image (Developer Tutorial): Figure 2 - Running Docker Containers

上記のコマンドは、コンテナID、名前、イメージ名など、実行中のコンテナの詳細を表示します。

コンテナの停止と削除

# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
SHELL

Docker Start Container From Image (Developer Tutorial): Figure 3 - Stop Container

IronSecureDoc とは何ですか?

IronSecureDoc Dockerは、Iron Softwareによるコンテナ化されたドキュメント処理ソリューションであり、人間の介入なしにDocker環境でドキュメントを自動的に処理できます。 それは、PDFおよびドキュメントファイルに対する暗号化、デジタル署名、復号、透かしなどによる複雑なドキュメントワークフローと最大限のデータ保護を提供します。 DevOpsおよびCI/CDパイプラインの統合に適した、一貫性とスケーラブルな隔離デプロイメントをプラットフォーム間で確保します。

Docker Start Container From Image (Developer Tutorial): Figure 4 - IronSecureDoc: The PDF Security and Compliance Server

このコンテナ化されたアプローチは、自動化と高いセキュリティを要求するアプリケーションでのドキュメント処理を向上させ、マイクロサービスおよびクラウドネイティブ環境と互換性があります。 IronSecureDocは、制御された持ち運び可能なDockerコンテキストで信頼性のある自動ドキュメント処理が必要なアプリケーションを作成する開発者にとって特に有用です。

IronSecureDoc をインストールして実行する

リポジトリからIronSecureDoc Dockerイメージをダウンロードするには、コマンドプロンプトまたはターミナルウィンドウで次のコマンドを実行します:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Start Container From Image (Developer Tutorial): Figure 5 - Download IronSecureDoc Image

Dockerイメージをプルした後、別のコマンドを起動してIronSecureDocコンテナを開始します。

IronSecureDocの新しいコンテナの作成

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

上記のdocker runコマンドは、IronSecureDocのコンテナインスタンスを作成します。

Dockerのコンテナをイメージから開始する(開発者チュートリアル):図6 - 新しいコンテナ

IronSecureDocコンテナの使用

IronSecureDocは、ユーザーがそのREST APIを介してファイルを赤味除去、認証、または暗号化するためにDockerをインストールし実行することを可能にします。

Docker Start Container From Image (Developer Tutorial): Figure 7 - SecureDoc Web API

例えば、ドキュメントを暗号化するには、IronSecureDoc APIにPOSTリクエストを行うことができます:

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

これにより、ドキュメントがIronSecureDocに転送され、それに応じてデータが処理および暗号化されます。

結論

簡単に言うと、Dockerはアプリケーションのデプロイメントを簡素化します。なぜなら、開発者がイメージからコンテナを作成し、持ち運び可能かつスケーラブルな環境での均一性を保証するからです。 これにより、アプリケーションのプラットフォーム間での効率的な実行が可能になり、リソースの利用を促進し、DevOpsおよびCI/CDパイプラインを強化します。

同様に、IronSecureDoc DockerはDockerのコンテナ化されたアーキテクチャを活用し、安全で自動化されたドキュメント処理ソリューションを提供します。 DockerとIronSecureDocは共に、現代のソフトウェア開発において安全かつスケーラブルなアプリケーションを構築するための強力なツールを提供します。 IronSecureDocのライセンスに関する詳細はこのライセンスポージをクリックし、Iron Softwareの数多くの製品の詳細についてはライブラリスイートページをご覧ください。

よくある質問

Dockerとは何で、なぜ開発者にとって重要なのですか?

Dockerは、コンテナ内でのアプリケーションのデプロイと管理を自動化するオープンソースプラットフォームです。アプリケーションをその依存関係と一緒にパッケージ化し、異なる環境における一貫した動作を保証することで、開発、テスト、およびスケーリングを簡素化します。

Dockerイメージはどのようにしてアプリケーションのデプロイを助けますか?

Dockerイメージはコンテナを作成するための読み取り専用のブループリントとして機能します。イメージはアプリケーションを実行するために必要なシステムファイルと依存関係を定義し、簡単に共有およびデプロイできるようにします。イメージはDocker Hubのようなレジストリから保存およびアクセスできます。

Dockerコンテナを作成して実行するための主な手順は何ですか?

Dockerコンテナを作成して実行するには、ベースイメージと依存関係を指定するDockerfileを作成することから始めます。次に、DockerfileからDockerイメージをビルドし、docker run コマンドを使用してコンテナを作成して開始します。

IronSecureDocはDocker内での文書処理をどのように向上させるのですか?

IronSecureDocは、暗号化やデジタル署名などの機能を備えた文書処理を自動化するDockerベースのソリューションです。これはDockerコンテナ内での安全でスケーラブルなワークフローを保証し、DevOpsやCI/CDパイプラインへの統合に最適です。

アプリケーション開発のためにDockerコンテナが提供するメリットは何ですか?

Dockerコンテナは隔離、軽量さ、移植性、リソース効率を提供します。それらは環境間での一貫したアプリケーション実行を保証し、迅速なデプロイとマイクロサービスの管理を簡素化します。

Dockerを使用して開発者が安全な文書処理を確保するにはどうすればよいですか?

開発者はIronSecureDocを使用してDockerコンテナ内での安全な文書処理を自動化できます。これは暗号化、デジタル署名、その他のセキュリティ機能を提供し、文書ワークフローの保護と整合性を強化します。

Docker Hubはコンテナのデプロイにどのような役割を果たしていますか?

Docker Hub は、事前構築された Docker イメージのオープンレジストリとして機能し、開発者がイメージにアクセスし、共有できるようにします。これにより、アプリケーションのカスタマイズとデプロイが容易になり、開発プロセスが加速します。

Dockerはアプリケーションのスケーラビリティと効率性をどのように向上させますか?

Dockerは簡単なコンテナの複製と管理を可能にすることでスケーラビリティを向上させます。これによりアプリケーションを迅速かつ効率的にスケールさせ、リソースの最適利用を可能にし、現代のソフトウェア開発プラクティスをサポートします。

コンテナ作成におけるDockerfileの目的は何ですか?

DockerfileはDockerコンテナのためのベースイメージ、依存関係、アプリケーションコード、実行コマンドを定義するのに使用されます。これはDockerイメージを構築するためのブループリントとして機能し、その後コンテナを作成するために使用されます。

カーティス・チャウ
テクニカルライター

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

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