4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

検証用に素のWeblogic環境をDockerで立ち上げる方法(12.2.1)

Last updated at Posted at 2016-11-23

WebLogic 12cの環境をとりあえず使ってみたい方向けに、2016年11月現在での方法を紹介します。こちらの記事は、12.2.1に対応しています。12.2.1.1以降はこちらの記事をどうぞ。

ノード・マネージャを使えば、サーバーの起動停止は管理コンソールで実施できます。しかし、Oracle公式のDockerイメージでは、管理サーバーのあるコンテナではノード・マネージャが稼働しません。管理サーバーを起動した後、ノード・マネージャが稼働するコンテナを作成します。

前提:

  • GitとDockerが使える環境が既にある
  • LinuxかMacを使っている (Windowsの場合は、適宜読み替えができる)

参考:
https://github.com/oracle/docker-images/tree/master/OracleWebLogic
の中の各種READMEなど

1. 必要なものをダウンロード

Oracle社公式のDockerイメージ

$ git clone --depth 1 https://github.com/oracle/docker-images
$ export WLS_DOCKER_DIR=`pwd`/docker-images

以下、docker-images/のパスを$WLS_DOCKER_DIRと表記します。

Java 8

  • JavaのOTNサイトにて、利用許諾確認してダウンロード
  • Linux x64版のJava8(マイナーバージョンは不問)
  • $WLS_DOCKER_DIR/OracleJava/java-8に配置

WebLogic

  • WebLogicのOTNサイトにて、利用許諾確認してLinux x64版をダウンロード
  • 12.2.1のQuick Installer for Mac OSX, Windows and Linux
  • $WLS_DOCKER_DIR/OracleWebLogic/dockerfiles/12.2.1に配置
  • MD5チェックサムを、上記ディレクトリ内の*.downloadと比較して確認

2. Java Dockerイメージのビルド

$ cd $WLS_DOCKER_DIR/OracleJava/java-8
$ sh build.sh
...
Successfully built 4f40dfabddcf

3. WebLogic Dockerイメージのビルド

$ cd $WLS_DOCKER_DIR/OracleWebLogic/dockerfiles
$ sh buildDockerImage.sh -v 12.2.1 -d -s
...
Successfully built 0babafe5a6e3

  WebLogic Docker Image for 'developer' version 12.2.1 is ready to be extended: 
    
    --> oracle/weblogic:12.2.1-developer

  Build completed in 313 seconds.

「md5sum」がない環境でも実行できるよう、-sをつけてチェックサム比較処理を回避しています。

4. ドメイン作成処理を追加したイメージのビルド

1221-domainを使います。

$ cd $WLS_DOCKER_DIR/OracleWebLogic/samples/1221-domain
$ docker build -t 1221-domain --build-arg ADMIN_PASSWORD=Welcome1 .
...
Successfully built fe9f79ebf038

5. WebLogic管理サーバーの起動

$ docker run -d --name=wlsadmin -p 8001:8001 1221-domain

管理サーバーの管理ポートが8001のため、Docker Machineのポート8001で、管理コンソールなどにアクセスできるようにしています。

6. ノード・マネージャが稼働するコンテナの起動

$ docker run -d --name machine1 --link wlsadmin:wlsadmin -p 7001:7001 1221-domain createMachine.sh

上記の場合、管理ポート7001で管理対象サーバーを作成すれば、Docker Machineのポート7001で、デプロイしたアプリにアクセスできるようになります。複数の管理対象サーバやポートを使用する予定の場合は、-p 7001:7001 -p 7002:7002 -p 7003:7003などと書きます。

起動したコンテナの状態を確認します。

$ docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                                                  NAMES
9e40f7eac343        1221-domain         "createMachine.sh"   7 seconds ago       Up 6 seconds        5556/tcp, 8001/tcp, 8453/tcp, 0.0.0.0:7001->7001/tcp   machine1
ad5cb331b0d4        1221-domain         "startWebLogic.sh"   27 seconds ago      Up 27 seconds       5556/tcp, 7001/tcp, 8453/tcp, 0.0.0.0:8001->8001/tcp   wlsadmin

7. 検証

管理コンソール

Docker Machine以外の環境からアクセスする場合は、localhostをDocker Machineのホスト名に置き換えてください。

開発モードとなっています。

ドメインに「Machine-コンテナID」という名前のマシンが作成されています。

「DockerCluster」という名前の空のクラスタが、必ず作成されます。現時点で、ソース変更以外に作成を回避する方法は見つかっていません。不要なら無視しましょう。

コンソールアクセス

oracleユーザーでコンテナにログインして、WLSTなどのコマンドを検証できます。

$ docker exec -it wlsadmin bash

ファイルをアップロード

Docker Machineからコンテナへ、WLSTスクリプトやバイナリなどをコピーできます。

$ docker cp /path_in_dockermachine/SomeFile.zip wlsadmin:/path_in_container/

再起動

WebLogicサーバーの再起動は、Dockerコンテナの再起動で実施します。

$ docker stop wlsadmin
$ docker start wlsadmin

8. 片付け

$ docker stop machine1 wlsadmin
$ docker rm machine1 wlsadmin

注意点

Oracle製品をプロジェクトに含んだ状態でDockerイメージを公開すると、利用許諾違反となります。また、利用許諾承認プロセスが組み込めないため、DockerHubにWebLogicのビルド済みイメージが公開される可能性は無いようです。レジストリサーバーを立てて、そこにビルド済みイメージを置いてDev/Ops間で共有するのは良いようです

参考:
There should be official Versions of Weblogic on DockerHub. #13
Put this on docker hub #109

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?