IRONSECUREDOCの使用

Dockerコンテナリスト(開発者向けの仕組み)

チャクニット・ビン
チャクニット・ビン
2024年12月16日
共有:

イントロダクション

今日のペースの速いソフトウェア開発環境では、アプリケーションの効率的なデプロイと管理が非常に重要です。 Dockerは、軽量でポータブルなコンテナ内のアプリケーションのデプロイを自動化するための主要なソリューションとして登場しました。 アプリケーションとその依存関係をカプセル化することで、Dockerはローカル開発から本番環境まで、さまざまな環境で一貫したパフォーマンスを保証します。

このコンテナ化技術は、スケーラビリティとリソース管理を簡素化し、現代のDevOpsプラクティスや継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインにおいて不可欠なツールとなっています。 この記事では、Dockerの基本、コンテナの概念、そしてそれがアプリケーションのデプロイプロセスをどのように向上させるかについて探ります。また、Dockerを利用したスケーラブルなソリューションを提供するドキュメントセキュリティツールのIronSecureDocについても詳しく見ていきます。

Dockerとは何ですか?

Dockerは、軽量で移植可能なコンテナ内にアプリケーションを展開する自動化オープンソース環境です。 コンテナは、アプリケーションがどこで実行されてもまったく同じように動作するように、依存するすべてのパッケージとアプリケーションをパッケージ化します; 開発者のラップトップ、テストサーバー、あるいは何らかの本番環境であっても構いません。 アプリケーションを基盤となるインフラから分離しておくことで、1つのコンテナをまったく同じホストで他のコンテナと並行して実行することができます。

Dockerコンテナリスト(開発者向けの仕組み):図1 - Dockerコンテナのユースケース

これにより、スケーラビリティとリソース管理が簡素化されます; Dockerを使用することで、開発から本番環境へのワークフローがより簡単かつ合理化されるため、最新のDevOpsおよびCI/CDパイプラインにおける重要な役割を果たします。

コンテナとは何ですか?

コンテナ:コード、ランタイムからシステムツール、ライブラリ、設定まで、ソフトウェアの実行に必要なすべてを1つのバンドルに収めた、軽量で自己完結型の実行可能なパッケージ。 これは、ホストや他のコンテナから隔離された環境ですが、同じオペレーティングシステムカーネルを共有するため、従来の仮想マシンと比べてはるかに効率的で高速です。

Dockerコンテナリスト(開発者にとっての動作方法):図2 - Dockerコンテナの可視化

Dockerコンテナは可搬性を重視して設計されているため、ソフトウェア開発者が開発のためにラップトップ上で実行し、テスターがテストのためにサーバー上で実行できるのであれば、クラウド環境や本番環境でも同じコンテナスタックを実行できるのが理想です。 Dockerを最新のソフトウェアデプロイメントとCI/CDパイプラインに不可欠なツールにしているのは、コンテナの分離性とスケーラビリティを組み合わせた移植性です。

コンテナは、開発者がアプリケーションをどこにデプロイしても同じように動作することを保証するDockerの機能の中核です。

Dockerコンテナのリスト

Dockerを使用して行う操作の中にコンテナのリストがあり、コンテナのステータスを監視したり、よりよく管理することができるかもしれません。 このようなアクションのためのDockerコマンドがあり、これは実行中のコンテナだけを印刷するか、停止中のコンテナを含むすべてのコンテナを印刷するかによって異なります。

以下はDockerコンテナをリストアップする方法です:

1.実行中のコンテナのリスト

現在実行中のコンテナのみを一覧表示するには、次の docker ps コマンドを使用します:

docker ps

このコマンドは以下の列を表示します。

  • コンテナID: コンテナの一意の識別子です。
  • イメージ: これは、コンテナが作成される元となるDockerイメージです。
  • コマンド: これはコンテナが実行しているコマンドです。
  • 作成日: コンテナが作成されてからどのくらい経ったか
  • ステータス: コンテナが稼働中か終了しているか、またどれくらいの期間稼働していたか。
  • ポート: ホストのポートとコンテナのマッピング。
  • 名前: コンテナに割り当てられた想定名で、自動的に生成されるか手動で設定されることがあります。

    Dockerコンテナリスト(開発者向けの動作原理):図3 - 'docker ps'コマンドの出力例

    より新しいコマンドである「docker container ls」を使用することもできますが、ここでは「docker ps」コマンドの構文に焦点を当てます。

2.すべてのコンテナ(実行中と停止中)の一覧表示

実行中および停止中のコンテナをすべて表示するには、-a を使用します:

docker ps -a

これは、docker ps と同じ列を意味しますが、停止または終了したコンテナ、または作成されたすべてのコンテナを含みます。 このコマンドは、停止したコンテナを管理したり、クラッシュしたコンテナの問題をトラブルシューティングしたりするのに便利です。

Docker コンテナリスト (開発者向けの動作方法): 図 4 - コマンド 'docker ps -a' の出力

3.コンテナIDのリストのみ

実際に必要なのがコンテナIDのみを表示することであれば(これはスクリプティングやその他の自動化に役立つ場合があります)、単に -q フラグを使用するのが便利です。

docker ps -q

コマンド'docker ps -q'は実行中のコンテナIDイメージのみを表示します。

たとえば、docker stop と組み合わせることで、実行中のコンテナをすべて停止させることができます:

docker stop $(docker ps -q)

Dockerコンテナリスト(開発者にとっての動作方法):図5 - コマンド 'docker ps -q' の出力

4.コンテナリストのフィルタリング

docker ps filter オプションを使えば、指定した条件に基づいて docker ps コマンドの出力をフィルタリングすることもできます。 以下は、ステータス別にコンテナをリストアップした例です:

docker ps -f "status=exited"

これは、終了したコンテナのみをリストアップします。 画像の名前、ラベル、またはポートや名前のような他のカスタム基準でフィルタリングすることができます。

Docker コンテナ リスト(開発者向けの動作方法):図 6 - フィルタリング コマンドの出力

5.アウトプットのフォーマット

読みやすさやカスタム出力のために、Dockerでは--formatオプションを使用して結果をフォーマットすることができます。 たとえば、コンテナのIDと名前だけを列挙するには、次のようにします:

docker ps --format "{{.ID}}: {{.Names}}"

これは特に、Dockerコンテナ管理を他のスクリプトやツールで使用する際に、特定の情報が必要になる場合に役立ちます。

Dockerコンテナリスト(開発者向けの仕組み): 図7 - フォーマットされたdocker psコマンドの出力

IronSecureDocとは何ですか?

IronSecureDoc は暗号化、秘匿化、デジタル署名機能を提供することにより、機密ファイルを保護するために設計されたドキュメントセキュリティツールです。 このツールは、ユーザーが個人情報や機密データを管理するためのPDF文書を保護します。 パスワード保護、PDF/Aなどの標準規格への準拠、デジタル認証など、法律や医療、金融の分野でよく使用される機能も含まれます。 このソフトウェアはREST APIとして提供されているため、さまざまなワークフローに非常に統合されており、Docker上にデプロイすることで、スケーラブルでクラウドに適したセキュリティソリューションを実現できます。

Dockerコンテナリスト(開発者向けの仕組み):図8 - IronSecureDocウェブページ

IronSecureDocの特徴

IronSecureDocはPDFのセキュリティ処理と文書管理の面で非常に印象的です。 その機能には、暗号化、再編集、デジタル署名が含まれます。

暗号化:データの機密性を保護するために、128または256ビットの暗号化とパスワードベースのセキュリティを伴うPDFドキュメントの暗号化を提供します。

墨消し: この機能は、個人識別情報やその他の機密情報などの機密データを削除し、プライバシー基準や規制に準拠します。

デジタル署名: これは、PDF の公証付きデジタル署名機能を備えており、ドキュメントの真正性を保証するために .pfx または .p12 をサポートしています。

コンプライアンス: これもPDF/AおよびPDF/UA標準に準拠していることを確認し、アーカイブとアクセシビリティに適しています。

REST API: これは、他のソフトウェアやワークフローとの統合を可能にする柔軟なREST APIを備えています。

ドキュメントバージョン管理: すべての変更を追跡するためのバージョン管理と、ドキュメントをより良く管理するためのバージョン管理。

Docker統合: スケーラブルなアプリケーションやクラウドまたはオンプレミス環境でのデプロイを容易にするためのDockerとのネイティブ統合。

ここでは、法律、医療サービス、金融分野の機密文書に威力を発揮する機能をいくつか紹介します。

IronSecureDocをDockerコンテナに取り込む方法

ターミナルウィンドウまたはコマンドプロンプトを開き、このコマンドを使ってリポジトリからIronSecureDoc Dockerイメージを取り出します。

docker pull ironsoftwareofficial/ironsecuredoc

Docker コンテナリスト(開発者向けの動作方法): 図 9 - IronSecureDoc Docker イメージをプルした際のコンソール出力

コンテナからのIronSecureDocの実行

コンテナがイメージを引き出したので、別のコマンドを実行してIronSecureDocという別のコンテナを起動することができる。 pフラグを私たちのポートマッピングに置き換えたり、--rmを置き換えて、Dockerホスト上で実行中のコンテナをいくつでも削除することができます。

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

Dockerコンテナリスト(開発者向け動作の仕組み):図10 - コンテナからIronSecureDocを実行した際のコンソール出力

DockerコンテナでIronSecureDocを使う

IronSecureDocは、前述したようにDockerにインストールして起動した後、REST APIを使用してドキュメントの再編集、認証、暗号化に使用できます。 このリンクを訪問して、IronSecureDocをDockerコンテナで起動した後は、APIエンドポイントとSwagger UIを使ったドキュメントを参照してください: http://localhost:8080/swagger/index.html

Dockerコンテナリスト(開発者向けの仕組み):図11 - APIエンドポイントとやり取りするためのSwagger UI

例えば、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'

こうすることで、IronSecureDocはドキュメントを受け取り、必要な暗号化を適用します。

結論

このように、「docker ps」や「docker ps -a」などのリストアップコマンドは、実行中および停止中のコンテナのチェック、メンテナンス、管理を簡単に行えるという点で、Dockerコンテナの管理を効率化します。 このようなコマンドは、開発者やシステム管理者がさまざまな環境でコンテナをフィルタリング、フォーマット、操作するのを助け、適切なアプリケーション管理を効果的にします。

IronSecureDoc は、暗号化、編集、デジタル署名の文書セキュリティ機能をDockerコンテナとしてデプロイおよびスケーリングするのを非常に簡単にします。 また、さまざまなプラットフォームでパフォーマンスとセキュリティレベルが維持されるようにしながら、簡単にデプロイして拡張できるようにします。 IronSecureDocのライセンスについてさらに知りたい場合は、こちらをクリックしてください。 また、Iron Softwareは、開発プロジェクトを向上させるための様々な製品を提供しており、さらに詳しくはこちらで学ぶことができます。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
Zabbix Docker(開発者向けの仕組み)
次へ >
Docker Compose 環境変数 (開発者向けチュートリアル)