Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?