Oracle® Fusion Middleware

DockerでのOracle WebLogic Server 12.2.1の実行

12c (12.2.1)

E72550-01(原本部品番号:E66263-02)

2015年11月

Oracle Fusion Middleware DockerでのOracle WebLogic Server 12.2.1の実行 12c (12.2.1)

E72550-01

Copyright © 2007, 2015, Oracle and/or its affiliates.All rights reserved.

原本著者:  Jeffrey Schieli

原本協力著者:  Monica Riccelli

原本協力者:  Bruno Borges

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 はじめに

- Dockerについて

- DockerでのWebLogic Serverイメージについて

- WebLogic Server Dockerカスタム・イメージ

- GitHubのDockerfileおよびスクリプトについて

- GitHubのDockerfileについて

- GitHubのスクリプトについて

- DockerでのWebLogic Serverのクラスタ化

- Dockerコンテナ内のクラスタ化されたWebLogicドメイン

- Dockerコンテナの非クラスタ化WebLogic Server

2 DockerでのWebLogic Serverイメージのビルド

- DockerでのWebLogic Serverイメージのビルド

- WebLogic Serverドメイン作成のサンプル

- WebLogic Server 12c (12.2.1)のサンプル・ドメイン

- WLSTを使用したOracle WebLogic Serverドメインの作成

- Oracle WebLogic ServerドメインのサンプルDockerイメージのビルド

- 管理サーバー・コンテナの稼働

- 管理対象サーバー・コンテナの稼働

- 管理対象サーバーのサンプル・コマンドおよびパラメータ

- スクリプト変数

- スクリプト変数の使用方法の例

- DockerコンテナでWebLogic Serverイメージを稼働する際の追加の考慮事項

- Dockerコンテナの再起動後のIPアドレスの制御の方法

- コンテナでのファイル・システムの管理の方法

- コンテナ内でのクラスタ化WebLogic Serversの通信の方法

- WebLogic Serverイメージへのパッチ適用およびアップグレード

- DockerおよびLinuxコンテナに関するセキュリティ上の重要問題

3 DockerでWebLogic Serverイメージを稼働する際のよくある質問

- Oracle Weblogic Server 12.2.1は、Oracle Linux 6.6/7およびRed Hat Linux 7 Dockerイメージで動作保障されていますか。

- 独自のWebLogic Server Dockerイメージを作成できますか。

- WebLogic Server DockerイメージはDocker Hubで公開されていますか。

- Docker環境では、WebLogic Serverイメージのドメイン・ファイル・システムはどこにありますか。

- Dockerでは、Weblogic Serverをサポートしているのは単一ノードのみですか。

- DockerコンテナのWebLogic Serverにパッチを適用する際、どのような手順が推奨されますか。

- DockerコンテナのWeblogic Serverをサポートするオーケストレーション・レイヤーはありますか。

- WebLogic Serverを使用するDockerで稼働するサードパーティ・ソフトウェアはサポートされていますか。

はじめに

この項では、対象読者、このガイドの使用方法、関連するドキュメントを説明し、ドキュメントのアクセシビリティについての情報を提供します。

対象読者

このドキュメントは、、アプリケーション開発者が、軽量化されたクラスタ化および非クラスタ化のWebLogic Serverドメイン構成を、開発環境または本番環境のいずれかで単一のホスト・オペレーティング・システムまたは仮想マシン上に、すばやく作成することを目的にしています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、Oracle WebLogic Serverドキュメント・セットの次のドキュメントを参照してください。

- Oracle WebLogic Serverドメイン構成の理解

- 構成ウィザードによるWebLogicドメインの作成

- Oracle WebLogic Serverサーバーの起動と停止の管理

- Oracle WebLogic Serverノード・マネージャの管理

- WebLogic Scripting Toolの理解

- Oracle WebLogic Serverアプリケーションの開発

- Oracle WebLogic Serverへのアプリケーションのデプロイ

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 はじめに

この項では、Dockerコンテナ内で稼働するようにOracle WebLogic Server 12.2.1を構成する方法について説明します。DockerはLinuxベースのコンテナ・テクノロジーで、単一のホストOSまたは仮想マシン上に、開発または本番環境の、クラスタ化または非クラスタ化された、軽量のWebLogic Serverドメイン構成を短時間で作成できます。

内容は次のとおりです。

- Dockerについて

- DockerでのWebLogic Serverイメージについて

- GitHubのDockerfileおよびスクリプトについて

- DockerでのWebLogic Serverのクラスタ化

Dockerについて

Dockerは、ユーザーが分散アプリケーションをビルド、パッケージ、出荷および稼働することができるプラットホームです。Dockerのユーザーは、開発したアプリケーションおよびアプリケーションに依存するすべてのライブラリおよびファイルをひとつのDockerイメージにパッケージできます。

Dockerイメージは、様々なLinux環境に配布できる移植可能なアーチファクトです。配布されたイメージを使用してコンテナをインスタンス化し、同一のオペレーティング・システム上の別のコンテナで稼働中のアプリケーションから独立して、アプリケーションを稼働することができます。

DockerでのWebLogic Serverイメージについて

証明書の一部として、オラクル社では、WebLogic ServerでイメージをビルドするDockerfileおよびサポートス・クリプトをGitHubでリリースしています。これらのイメージは、既存のOracle Linuxイメージの拡張としてビルドされます。GitHubで公開されているDockerfileおよびサポート・スクリプトを使用して開始すると、WebLogic Server Dockerイメージの作成および稼働を容易になります。詳細は、「GitHubのDockerfileおよびスクリプトについて」を参照してください。

Dockerイメージ作成をサポートするために、オラクル社では、WebLogic Server 12.2.1をJDKバージョン、Oracle LinuxおよびRed Hat Linux OSバージョン、KernelバージョンおよびDockerバージョンとの様々な組合せを使用して動作保証しています。サポートされているWebLogic Server Dockerイメージの動作保証の詳細は、http://www.oracle.com/technetwork/middleware/ias/oracleas-supported-virtualization-089265.htmlを参照してください。

WebLogic Server Dockerカスタム・イメージ

独自のWebLogic Server Dockerイメージを作成することができます。この作業を容易にするために、オラクル社では、開始の際にサンプルとして使用できるDockerfileおよびスクリプトをGitHubで公開しています。

カスタムのWebLogic Server Dockerイメージを作成する前提条件は、次の通りです。

- サポートされているOracle LinuxまたはRed Hat Linuxベース・イメージ

- GitHubから入手したDockerfileおよびスクリプト

- Oracle WebLogic Server 12c (12.2.1) GenericインストーラまたはDeveloperインストーラ

- 対応するサポートされているJDK

GitHubのDockerfileおよびスクリプトについて

WebLogic Server Dockerイメージのビルドおよび稼働を容易にするために、GitHubでDockerfileおよびサポート・スクリプトが公開されています。ディレクトリ全体をダウンロードして、Oracle WebLogic Serverイメージをビルドし、コンテナを開始してください。これらのファイルにアクセスするには、https://github.com/oracle/docker/tree/master/OracleWebLogic/へ移動します。

これらのDockerfileおよびスクリプトを使用すると、開発したイメージを拡張して、単一のホスト・オペレーティング・システムまたは仮想マシンで稼働する開発環境および本番環境を含むクラスタ化および非クラスタ化のWebLogic Serverドメイン構成を作成できます。GitHubのDockerfileおよびスクリプトは、独自のDockerfileを記述しWebLogic Serverイメージをビルドするためのサンプルとして使用することのみを目的としています。

注意:
OracleではWebLogic ServerでのRed Hat Linuxイメージを動作保証していますが、GitHubでのDockerfileはOracle Linuxイメージのみを拡張するために書き込まれます。WebLogic Serverイメージを作成して、Red Hat Linuxイメージを拡張するには、これらのDockerfileを変更する必要があります。

作成されるドメイン構成で実行中の各サーバーは、それぞれのDockerコンテナで稼働し、必要に応じ他のサーバーと通信できます。「DockerでのWebLogic Serverイメージのビルド」で説明するように、これ以外の構成およびアプローチも可能です。

GitHubのDockerfileについて

2種類のWebLogic Server 12c (12.2.1)用のDockerfileが、GitHubの/OracleWebLogic/dockerfiles/12.2.1サブディレクトリから入手できます。

- Dockerfile.developer – WebLogic Server開発用インストール・イメージをビルドします。

- Dockerfile..generic – WebLogic Server汎用ドメイン・イメージをビルドします。

WebLogic Serverインストール・イメージのDockerfile

WebLogic Serverインストール・イメージを作成するDockerfileは、次の機能を実行します。

- Oracle Linuxベース・イメージを拡張します。

- JDKをインストールします。

- GenericまたはDeveloperインストーラのいずれかを(選択するDockerfileに応じて)使用して、WebLogic Serverをインストールします。

WebLogic Serverインストール・イメージを作成した後に、それらを拡張してWebLogic Serverのベース・ドメインを構成することができます。

WebLogic Serverドメイン・イメージのDockerfile

WebLogic Serverドメイン・イメージを作成するDockerfileは、次の機能を実行します。

- WebLogic Serverインストール・イメージを拡張します。

- WLSTスクリプトを呼び出して、WebLogic Serverドメインを構成します。ドメインには、管理サーバー、JMSサーバーおよびデータ・ソースが1つずつあり、JPA 2.1およびJAX-RS 2.0が有効化されます。

図1-1に、WebLogic Serverドメイン・イメージを示します。

図1-1 WebLogic Serverドメイン・イメージ

Oracle WebLogic Serverドメイン・イメージを使用して、次の2つのタイプのコンテナを作成できます。

- 単一のWebLogic Server管理サーバーを持つ管理サーバーコンテナ(図1-2)。

図1-2 管理サーバー・コンテナ

- ノード・マネージャのある管理対象サーバー・コンテナ。管理サーバーおよび管理対象サーバーにマシンとして追加されます(図1-3)。

図1-3 管理対象サーバーとノード・マネージャ・コンテナ

GitHubのスクリプトについて

サポート・スクリプトは、WebLogic Server 12c (12.2.1) Dockerイメージの作成を助け、WebLogic Serverドメインの構成でイメージを拡張するサンプルとして使用されます。スクリプトは、/OracleWebLogic/dockerfiles、/OracleWebLogic/samplesおよび/OracleWebLogic/samples/12c-domain/container-scriptsサブディレクトリにあります。

表1-1に示すスクリプトは、WebLogic Serverインストール・イメージの作成およびDockerコンテナ内でのWebLogic Serverの開始の際に使用します。

表1-1 GitHubでサポートされているDockerのWebLogic Serverスクリプト

スクリプト

機能

buildDockerImage.sh

WebLogic ServerインストールDockerfileの手順を使用してイメージをビルドします。

add-machine.py

管理対象サーバー・コンテナ名を使用してマシンを作成するWLSTスクリプト。

add-server.py

管理サーバーを作成するWLSTスクリプト。

commEnv.sh

JPA 2.1のサポートを有効にします。

create-wls-domain.py

1つの管理サーバー、LMSサーバー、JSPサーバーおよびデータ・ソースのあるベース・ドメインを構成するWLSTスクリプト。

createMachine.sh

コンテナのノード・マネージャを起動し、addMachine.shを呼び出して、ノード・マネージャの起動およびノード・マネージャ・マシンの追加を実行します。

createServer.sh

コンテナのノード・マネージャを起動し、add-server.pyを呼び出して、add-machine.pyで作成されたマシン内に管理対象サーバーを構成します。

jaxrs2-template.jar

JAX-RSを構成するテンプレート。

rm_containers.sh

稼働中のすべてのコンテナを削除します。

clean-up-docker.sh

すべてのゴースト・コンテナおよびゴースト・イメージを削除します。

DockerコンテナでのWebLogic Serverのクラスタ化

WebLogic Serverでは、エージェント、Node Managerを使用した運用システムであるマシンの概念を使用します。このマシン・リソースにより、管理サーバーは、ドメインおよびまたはクラスタに管理対象サーバーを作成および割り当てることができ、ドメインおよびまたはクラスタを拡張したりアプリケーションおよびリソースを管理対象サーバーにデプロイしたりできるようになります。

コンテナ内のマシンを使用すると、新しいManaged Serverコンテナを起動することにより、動的クラスタを構成して、使用するクラスタを簡単にスケール・アップできます。WebLogic Server Scripting Tool (WLST)を使用すると、クラスタの処理能力をすばやく最適化することができます。ノード・マネージャの詳細は、「Oracle WebLogic Serverノード・マネージャの管理」、およびWLSTの使用方法の詳細は、「WebLogic Scripting Toolの理解」を参照してください。

Dockerコンテナにより、クラスタ化および非クラスタ化されたWebLogic Serverドメイン構成を、単一のLinuxホストにまたがって作成できます。ドメイン構成の各サーバーは、それぞれのDockerコンテナで稼働し、同一ホスト上の他のサーバーと通信できます。クラスタ化されたWebLogic Serversは、複数のホストにまたがってサポートされていないことに注意してください。

Dockerコンテナ内のクラスタ化されたWebLogicドメイン

ひとつのトポロジは、DockerコンテナのWebLogic Serverクラスタを単一ホストにまたがった構成です(図1-4)。

図1-4 単一ホストにまたがるDockerコンテナのWebLogicクラスタ

このトポロジのメリットは、次のとおりです。

- 従来のWebLogic Serverデプロイメント(WebLogicドメインとクラスタを持ち、各クラスタに複数のサーバーが存在)に適しています。

- WebLogicドメイン・イメージからのコンテナのデプロイが容易です。

- クラスタのスケール・アップ、スケール・ダウンが容易です。

- 開発者に便利です。

- Dockerバイナリを除き、ホスト上に何もインストールまたは構成する必要がありません。

Dockerコンテナの非クラスタ化WebLogic Server

コンテナ化されたアプリケーションとサービスのDocker方式の構成に一致する推奨トポロジは、すべてのリソース、共有ライブラリおよびデプロイメントを含むWebLogic Administration Serverのみを実行するように設計されたコンテナから構成されます。図1-5に示すように、Dockerイメージは、事前定義されたすべてのドメイン・リソース、アプリケーションおよびあらかじめデプロイされた共有ライブラリを含み、管理対象サーバーまたはクラスタは含みません。

図1-5 単一ホスト上にコンテナ化されたOracle WebLogic Serverアプリケーション

このトポロジのメリットは、次のとおりです。

- コンテナ化されたアプリケーションとサービスを構成するために、Dockerの推奨方式を使用します。

- コンテナは、簡単に繰返し可能です。

- 各コンテナは、同じWebLogicドメインのインスタンスです。

コンテナはすべて、単一の物理または仮想サーバーLinuxホスト上(図1-5参照)、または、複数の物理または仮想サーバーLinuxホスト上(図1-6参照)に存在できます。

図1-6 複数ホスト上にコンテナ化されたWebLogic Serverアプリケーション

もう1つの可能なトポロジは、リモート・ホストおよびデータベース上のWebLogic Serverインスタンスと通信する単一のLinuxホスト上の単一のコンテナ上で実行される、単一のOracle WebLogic Serverドメインです。

図1-7に、単一ホスト上のDockerコンテナのWebLogic Serverの単一ドメインを示します。

図1-7 単一ホスト上のDockerコンテナのWebLogic Serverドメイン

2 DockerでのWebLogic Serverイメージのビルド

ここでは、オラクル社が提供しGitHubで入手可能なWebLogic Server 12.2.1 Dockerの独自のイメージをビルドするためのDockerfileおよびサポート・スクリプトの使用方法について説明します。

内容は次のとおりです。

- DockerでのWebLogic Serverイメージのビルド

- 管理サーバー・コンテナの稼働

- 管理対象サーバー・コンテナの稼働

- DockerコンテナでWebLogic Serverイメージを稼働する際の追加の考慮事項

DockerでのWebLogic Serverイメージのビルド

開始する前に、「DockerでのWebLogic Serverイメージについて」の説明に従い、使用するインストールのタイプとしてGenericインストーラまたはDeveloperインストーラのいずれかを選択します。次の手順を実行します。

1. dockerfiles/12.2.1ディレクトリにある必要なWebLogic ServerインストーラおよびJDKをダウンロードします。

2. /dockerfilesディレクトリに移動し、buildDockerImage.shスクリプトをrootとして実行します。

$ sudo sh buildDockerImage.sh -h

使用方法: buildDockerImage.sh [-d]

この場合、d:は、Developerディストリビューション、または省略した場合はGenericディストリビューションに基づいてイメージを作成します。

注意:
出力されるイメージでは、ドメインはあらかじめ構成されていません。Oracle WebLogic Serverインストール・イメージを拡張してOracle WebLogic Serverドメイン・イメージを作成するためのDockerfileとサポート・スクリプトが別途提供されています。

WebLogic Serverドメイン作成のサンプル

Oracle WebLogic Serverインストール・イメージを拡張するカスタムのDockerfileからドメインを作成する方法の理解を助けるために、DeveloperディストリビューションとGenericディストリビューションについて、Oracle WebLogic Server 12c (12.2.1)向けのサンプルがいくつか提供されています。サンプルは、samples/12c-domainディレクトリにあります。

WebLogic Server 12c (12.2.1)のサンプル・ドメイン

このDockerfileは、oracle/weblogic:12.2.1-dev (Developerディストリビューション)を拡張してイメージを作成します。これは、次の設定でbase_domainを構成します。

- JPA 2.1の有効化

- JAX-RS 2.0デプロイ済

- 管理者のユーザー名: weblogic

- 管理者のパスワード: welcome1

- Oracle Linuxのユーザー名: oracle

- Oracle Linuxのパスワード: welcome1

- WebLogic Serverのドメイン名: base_domain

WLSTを使用したOracle WebLogic Serverドメインの作成

独自のドメインを作成する、またはドメインを拡張する最善の方法は、WLSTの使用です。Dockerfileコンテナ内でのドメインの作成で使用するWLSTスクリプトは、create-wls-domain.pyです。このスクリプトは、デフォルトでJMSリソースおよびいくつかのその他の設定を追加します。

このスクリプトを独自の設定に調整して、データソースおよび接続プール、セキュリティ・レルム、アーチファクトのデプロイなどを作成できます。また、WLSTを使用して、イメージを拡張して既存のドメインを上書きしたり、新しいドメインを作成することもできます。

WLSTの使用方法の詳細は、「WebLogic Scripting Toolの理解」を参照してください。

WebLogic ServerドメインのサンプルDockerイメージのビルド

ドメインを構成したWebLogic Serverイメージのサンプルをビルドするには、次の手順を実行します。

1. 「DockerでのWebLogic Serverイメージのビルド」で説明する手順に従い、oracle/weblogic:12.2.1-devイメージをビルドしておきます。まだビルドしていない場合、/dockerfilesディレクトリに移動し、buildDockerImage.shスクリプトをrootとして実行します。

$ sudo sh buildDockerImage.sh -d

2. /samples/12c-domainに移動し、docker buildコマンドを実行します。

$ sudo docker build -t samplewls:12.2.1

3. docker imagesコマンドを実行して、イメージが正しく作成されたことを確認します。

$ sudo docker images

管理サーバー・コンテナの稼働

WebLogic Serverドメイン・イメージを使用してコンテナを起動すると、デフォルトでコンテナ内の管理サーバーが稼働を開始します。デフォルトの管理サーバー名はAdminServer、デフォルトのポート構成は8001、およびデフォルトの管理サーバーのコンテナ名はwlsadminです。単一の同じホスト内で複数のドメインを実行する場合は、管理サーバー名、ポート番号およびコンテナ名を変更する必要があります。

管理サーバーを起動するには、次の手順を実行します。

1. docker runコマンドを実行します。

$ sudo docker run -d --name=wlsadmin samplewls:12.2.1

ここで、samplewls:12.2.1は、WebLogic Serverドメイン・イメージのタグです。サンプルのDockerfilesでは、startWebLogic.shがデフォルトのCMD (コマンド)として定義されています。

2. 管理サーバー・コンテナのIPアドレスを取得するには、docker inspectコマンドを実行します。

$ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' wlsadmin

3. 管理サーバーのWebベース・コンソールを、http://xxx.xx.x.xx:8001/consoleから開きます。

注意:
複数のWebLogic Serverドメインが同一のホスト上で稼働中の場合(複数の管理サーバーなど)、-nameパラメータ(管理サーバー・コンテナの名前)および-pパラメータ(管理サーバーのポート)を変更します。

管理対象サーバー・コンテナの稼働

管理対象サーバー・コンテナには、ノード・マネージャおよびノード・マネージャ内で稼働している管理サーバーがあります。これらの管理対象サーバー・コンテナは、管理サーバーのコンテナ名を使用してリンクする(--linkコマンド)ことにより、管理サーバー・コンテナと通信します。管理サーバーのコンテナ名は、デフォルトでwlsadminです。

同一のホスト上で複数のドメインが稼働する場合、管理サーバーのコンテナ名を一意にする必要があり、管理サーバーのコンテナ名を-nameパラメータを使用して管理対象サーバーのコンテナ名を変更し、-linkコマンドで指定された名前と各管理対象サーバーのコンテナ名が合致するようにしてください。

管理対象サーバー・コンテナを起動するには、次の3つの方法があります。

- ノード・マネージャを起動します(手動)。

$ sudo docker run -d --link wlsadmin:wlsadmin <image-name> startNodeManager.sh

- ノード・マネージャを起動し、自動的にマシンを作成します。

$ sudo docker run -d --link wlsadmin:wlsadmin <image-name>  createMachine.sh

- ノード・マネージャを起動し、自動的にマシンを作成して管理対象サーバーを作成します。

$ sudo docker run -d --link wlsadmin:wlsadmin <image-name>  createServer.sh

管理対象サーバーのサンプル・コマンドおよびパラメータ

管理対象サーバー・コンテナのサンプルのdocker runコマンドおよび使用可能なパラメータのリストを次に示します。

$ sudo docker run -d -link wlsadmin:wlsadmin \
-p <NM Port>:5556 -p <MS Port>:<MS Port> \
-name=<Container name> \
-e MS_HOST=<Host address where Managed Server container runs> \
-e MS_PORT=<Managed Server port> \
-e NM_HOST=<Host address where Managed Server container runs> \
-e NM_PORT=<Node Manager Port (should match the port in the -p)> \
<image name> \
<createMachine.sh, startNodeManager.sh, createServer.sh>

スクリプト変数

サポートされているスクリプトには変数のリストが含まれ、表2-1の定義に従い正しく構成する必要があります。

表2-1 スクリプト変数と定義

変数

定義

ADMIN_USERNAME

管理サーバーweblogicユーザーのユーザー名。

デフォルト: weblogic

ADMIN_PASSWORD

ADMIN_USERNAMEのパスワード。

デフォルト: Dockerfileのビルドで指定された値(サンプルではwelcome1)

ADMIN_URL

管理サーバーのt3 URL。

デフォルト: t3://wlsadmin:8001

CONTAINER_NAME

作成するマシンの名前。

デフォルト: コンテナのnode manager_ + hash

NM_HOST

ノード・マネージャにアクセス可能なIPアドレス。

デフォルト: コンテナのIPアドレス

NM_PORT

ノード・マネージャのポート。

デフォルト: 5556

MS_HOST

管理対象サーバーにアクセス可能なIPアドレス。

デフォルト: コンテナのIPアドレス

MS_PORT

管理対象サーバーのポート番号。

デフォルト: 7001

スクリプト変数の使用方法の例

次のコマンドを使用して、管理対象サーバー・コンテナを実行します。

$ sudo docker run -d -link wlsadmin:wlsadmin -p 5558:5556 --name="wlsnm0" -e NM_HOST="xx.xxx.xx.xxx" -e NM_PORT="5558" samplewls:10.3.6 createMachine.sh

単一ホスト構成をリモート・サーバー(たとえばDevOpsマシンなど)で実行する場合、管理対象サーバーのポートおよびアドレスを次に示すサンプルのように公開する必要があります。

$ sudo docker run -d --link wlsadmin:wlsadmin   -p 7003:7003
-e MS_HOST=xx.xxx.xx.xxx -e MS_PORT=7003 samplewls:12.2.1 createServer.sh

$ sudo docker run -d --link wlsadmin:wlsadmin   -p 7002:7002
-e MS_HOST= xx.xxx.xx.xxx  -e MS_PORT=7002 samplewls:12.2.1 createServer.sh

注意:
管理対象サーバーが稼働中のホスト・オペレーティング・システムに追加の管理対象サーバーを作成する場合、新しい一意のリスニング・ポートを割り当てる必要があります。これにより、同一のホスト・オペレーティング・システムで稼働する複数の管理対象サーバーが、同じリスニング・ポートでリスニングしないようになります。

createServer.shコマンドを使用する場合、次のようにします。

1. http://admin-container-ip:8001 /consoleから管理サーバー・コンソールにアクセスします。

2. 「ドメイン構造」ツリーで、「環境」を開きます。

3. 「マシン」を選択して「マシンのサマリー」ページを開き、マシンが登録されていることを確認します。

4. 表の登録されたマシンをクリックし、「ノード・マネージャ」タブおよび「サーバー」タブを使用して、ノード・マネージャおよび管理対象サーバーが構成されていることも確認します。

5. 「サーバー」ページを開いて「制御」タブを選択し、サーバーを起動します。

DockerコンテナでWebLogic Serverイメージを稼働する際の追加の考慮事項

この項では、DockerコンテナでWebLogic Serverイメージを稼働する際の追加の考慮事項について説明します。

Dockerコンテナの再起動後のIPアドレスの制御の方法

Dockerコンテナが再起動されるとIPアドレスが変更されるため、Dockerコンテナで稼働するWebLogic Serversのアドレスが新しくなります。コンテナの再起動前にサーバーと通信していたアプリケーションやその他のサーバーは、通信できなくなります。

これを解決するには、コンテナの再起動後に、DNSサーバーをDockerで構成し、DNS名を使用するようにWebLogic Serverドメインを構成します。

コンテナでのファイル・システムの管理の方法

WebLogic Server構成ファイル、サーバー・ログ、ファイル・ストアなどはすべてコンテナ・ファイル・システム内に保存されます。Dockerコンテナが破損すると、ファイル・システム全体が失われます。ファイル・システムが失われないようにするには、次で説明し、図2-1で示すように、2つの方法があります。

- データ専用コンテナを使用して、ドメインのファイル・システムを格納します。(図のContainer1およびDataCont-1。)

- ホスト・ファイル・システムを使用して、コンテナのローカル・ファイル・システムを格納します(図のContainer2。)

注意:
図のContainer0は、ステートレスな単一WebLogic Serverを示します。これが持つ機能は、アプリケーションおよびリソースのデプロイのみで、そのファイル・システムを維持する必要がありません。これが破壊されても、イメージから新しいコンテナを開始することができます。

ファイル・システムへの依存を最小限にするために、次のようにすることをお薦めします。

- TLogおよびJMSなどのストアをデータベースに保存します。

- XAトランザクションを使用する場合、「TLog書込みを使用しないXAトランザクション」を使用すると、TLogへの書き込みを最小限にすることができます。『Oracle WebLogic Server JTAアプリケーションの開発』のトランザクションTLog書込みなしのXAトランザクションに関する項を参照してください。

図2-1 Dockerコンテナを使用したファイル・システムの管理

コンテナ内でのクラスタ化WebLogic Serversの通信の方法

クラスタ化されたOracle WebLogic Serverは、互いに通信し、また管理サーバーとの間で通信する必要があります。異なるホスト・マシン上で稼働するDockerコンテナには、他のコンテナと直接通信するために必要な可視性およびアクセス権がありません。そのため、複数のホスト・オペレーティング・システムにまたがるWebLogic Server構成の利用は、現時点でサポートされていません。

これを解決するためには、WebLogic Serverドメイン全体を単一ホストで稼働するように構成します。

WebLogic Serverイメージへのパッチ適用およびアップグレード

WebLogic Server汎用インストール・イメージで作成したWebLogic Serverイメージへパッチを適用する、またはアップグレードするには、次の手順を実行します。

1. WebLogic ServerインストールDockerイメージを拡張し、アップグレードまたはパッチ適用を行います。

2. Docker cp (copy)コマンドを使用して、ホストまたはデータ専用コンテナの宛先ディレクトリにドメイン・ディレクトリをコピーします。

3. コンテナを削除します。

4. 拡張されたイメージ(アップグレードまたはパッチ適用による)イメージから、新しいコンテナを実行します。

5. Docker cp (copy)コマンドを使用して、アップグレードされたコンテナにドメイン・ディレクトリをコピーしなおします。

DockerおよびLinuxコンテナに関するセキュリティ上の重要問題

DockerコンテナおよびLinuxコンテナに関して、次のセキュリティ上の重要な問題があります。

- まず、個別のコンテナで実行中のコードを互いに独立して使用できるかどうかが懸念されます。そのような環境でのWebLogic Serverの稼働能力に影響を与える既知の問題は、現時点ではありません。

- また、Dockerイメージの提供元に関するセキュリティ上の懸念があります。Dockerイメージは信頼できる提供元のみから入手し、更新の頻度に注意し、Docker Hubの管理の特質について理解する必要があります。

- DockerおよびLinuxテクノロジーについて常に最新情報を入手し、そこで発生しているセキュリティ上の問題を認識する必要があります。

- Dockerコンテナのデフォルトのネットワーク・モードである「ブリッジ・ネットワーク」では、マルチキャストはサポートされていません。Dockerコンテナのホスト・ネットワークではマルチキャストがサポートされていますが、ホスト・ネットワークのスタックを使用するため、独立性が低下します。Dockerコンテナで稼働する場合、WebLogic Serverクラスタ・プロトコルとしてユニキャストを使用することをお薦めします。

3 DockerでWebLogic Serverイメージを稼働する際のよくある質問

この項では、DockerコンテナでWebLogic Server 12.2.1イメージを稼働する際に関してよくある質問とそれに対する回答について説明します。

- Oracle Weblogic Server 12.2.1は、Oracle Linux 6.6/7およびRed Hat Linux 7 Dockerイメージで動作保障されていますか。

- 独自のWebLogic Server Dockerイメージを作成できますか。

- WebLogic Server DockerイメージはDocker Hubで公開されていますか。

- Docker環境では、WebLogic Serverイメージのドメイン・ファイル・システムはどこにありますか。

- Dockerでは、Weblogic Serverをサポートしているのは単一ノードのみですか。

- DockerコンテナのWebLogic Serverにパッチを適用する際、どのような手順が推奨されますか。

- DockerコンテナのWeblogic Serverをサポートするオーケストレーション・レイヤーはありますか。

- WebLogic Serverを使用するDockerで稼働するサードパーティ・ソフトウェアはサポートされていますか。

Oracle Weblogic Server 12.2.1は、Oracle Linux 6.6/7およびRed Hat Linux 7 Dockerイメージで動作保障されていますか。

はい。WebLogic 12.2.1は、Oracle Linux 6.6/7およびRed Hat Linux 7でサポートおよび動作保証されています。サポートされているWebLogic Server Dockerイメージの動作保証の詳細は、http://www.oracle.com/technetwork/middleware/ias/oracleas-supported-virtualization-089265.htmlを参照してください。

独自のWebLogic Server Dockerイメージを作成できますか。

はい。GitHubで公開されているサンプルのDockerfilesおよびスクリプトを使用できます。詳細は、「DockerでのWebLogic Serverイメージのビルド」を参照してください。

WebLogic Server DockerイメージはDocker Hubで公開されていますか。

いいえ。ただし、オラクル社では、WebLogic Server Dockerイメージを作成できるサンプルのDockerfilesおよびサポート・スクリプトをGitHubで公開しています。詳細は、「GitHubのDockerfileおよびスクリプトについて」を参照してください。

Docker環境では、WebLogic Serverイメージのドメイン・ファイルシステムはどこにありますか。

コンテナは、イメージのinstancesです。それぞれのコンテナは、コピー・オン・ライトの技法を使用して独自のファイルシステムを取得します。Dockerでは、ユニオン・ファイルシステムを使用しています。コンテナのデータは、次の3つの方法で保持されます。

- コンテナ・ユニオン・ファイルシステム(デフォルト) — コピー・オン・ライト

- データ・ボリューム — フォルダが、ホスト上のフォルダにマッピングされます。

- データ・ボリューム・コンテナ — フォルダが、他のコンテナ上のフォルダにマッピングされます。

Dockerでは、Weblogic Serverをサポートしているのは単一ノードのみですか。

Oracleは、「従来の」WebLogic Serverデプロイメント(WebLogicドメインとクラスタを持ち、各クラスタに複数のサーバーが存在)に対して、単一のホスト環境のみをサポートします。これは、異なるマシン(ホスト)上で実行されるDockerコンテナに、ともにネットワーク化されていない他のコンテナと直接通信するために必要な可視性とアクセスがないためです。図1-4「単一ホストにまたがるDockerコンテナのWebLogicクラスタ」を参照してください。

ただし、コンテナの構成におけるDocker方式と一致するトポロジに対しては、単一ホストおよび複数ホストの両環境をサポートします。コンテナ化されたアプリケーションとサービスのDocker方式の構成は、すべてのリソース、共有ライブラリおよびデプロイメントを含む管理サーバーのみを実行するように設計されたコンテナから構成されます。そのようなコンテナはすべて、単一の物理または仮想サーバーLinuxホスト上(図1-5「単一ホスト上にコンテナ化されたOracle WebLogic Serverアプリケーション」参照)、または、複数の物理または仮想サーバーLinuxホスト上(図1-6「複数ホスト上にコンテナ化されたOracle WebLogic Serverアプリケーション」参照)に存在できます。

詳細は、「Dockerコンテナの非クラスタ化WebLogic Serverドメイン」を参照してください。

DockerコンテナのWebLogic Serverにパッチを適用する際、どのような手順が推奨されますか。

DockerのWebLogic Serverへのパッチ適用および/またはアップグレードの詳細は、「WebLogic Serverイメージへのパッチ適用およびアップグレード」を参照してください。

DockerコンテナのWeblogic Serverをサポートするオーケストレーション・レイヤーはありますか。

現時点では、オーケストレーション・レイヤーはサポートされていません。

WebLogic Serverを使用するDockerで稼働するサードパーティ・ソフトウェアはサポートされていますか。

DockerではOracle WebLogic Server 12.2.1のみが動作保証されています。http://www.oracle.com/technetwork/middleware/ias/oracleas-supported-virtualization-089265.htmlを参照してください。

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2016, Oracle and/or its affiliates.All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。