Docker版のIBM DataPower GatewayをMacで動かす


IBM API ConnectのAPIゲートウェイとして利用されるDataPower GatewayはDocker版を提供している。
このDocker版DataPower GatewayをMacで動かす手順についてまとめてみる。

前半部分は、Docker for Macの導入手順になるので、[Docker版API ConnectをMacで動かす](http://qiita.com/Naomi_Tanaka/items/5b5dbdfa66215d882383)の前半部分とほぼ同じであるが、Docker for Macのバージョンが新しくなっていたりするので、改めて記載する。

## 参考リンク

+ DataPowerのDockerイメージ
Docker Hubの[ibmcom/datapower](https://hub.docker.com/r/ibmcom/datapower/)リポジトリー

+ DataPowerのDocker版導入手順(マニュアル)
https://www.ibm.com/support/knowledgecenter/ja/SS9H2Y_7.5.0/com.ibm.dp.doc/virtual_runningdockerimage.html


+ Docker for Macドキュメント
https://docs.docker.com/docker-for-mac/install/



## 環境について
今回利用するPCは、MacBook Pro (13-inch, 2016)。
スペックとOSバージョンは以下のとおり。

    MACOS Sierra(バージョン10.12.3)
    プロセッサ 3.3GHz Intel Core i7 (2core)
    メモリ 16GB 2133 MHz LPDDR3

DataPowerのDocker版を動かすには、2core CPUと4GBメモリが必要とマニュアルに書いてあるので、このスペックのPCで試してみる。

## Docker for MACのインストール

以下のサイトからDocker for Macをダウンロードする。Stableを選択。
https://docs.docker.com/docker-for-mac/install/

![Kobito.Id1wSu.png](https://qiita-image-store.s3.amazonaws.com/0/122053/80492f87-58c1-6b23-4b48-4f68b15e1c7b.png "Kobito.Id1wSu.png")

ダウンロードしたDocker.dmgを実行して、DockerアイコンをApplicationsにドラッグ＆ドロップする。

![スクリーンショット 2017-05-12 14.30.12.png](https://qiita-image-store.s3.amazonaws.com/0/122053/4f69be7e-053c-56b0-9fdb-122da104715e.png "スクリーンショット 2017-05-12 14.30.12.png")

Dockerアプリケーションを起動。

![スクリーンショット 2017-05-12 14.31.58.png](https://qiita-image-store.s3.amazonaws.com/0/122053/1ac280a4-0a60-2bfa-8f5e-f3b306e18bff.png "スクリーンショット 2017-05-12 14.31.58.png")

開くをクリック。
![スクリーンショット 2017-05-12 14.33.20.png](https://qiita-image-store.s3.amazonaws.com/0/122053/ae5c35f6-4b30-4212-29e5-50f4cf448237.png "スクリーンショット 2017-05-12 14.33.20.png")

Nextをクリック。
![スクリーンショット 2017-05-12 14.33.34.png](https://qiita-image-store.s3.amazonaws.com/0/122053/b6a13698-d0f3-d762-7475-6b086a7517ce.png "スクリーンショット 2017-05-12 14.33.34.png")


OKをクリック。
![スクリーンショット 2017-05-12 14.34.38.png](https://qiita-image-store.s3.amazonaws.com/0/122053/75608f52-4423-e3db-0803-848449de0c99.png "スクリーンショット 2017-05-12 14.34.38.png")


パスワードを入力すると、Dockerが起動し、上部のステータスバーにDockerアイコンが表示される。
![スクリーンショット 2017-05-12 14.36.18.png](https://qiita-image-store.s3.amazonaws.com/0/122053/d99b8f50-ec5e-c44b-ee8a-27506702e9f6.png "スクリーンショット 2017-05-12 14.36.18.png")

ここで、Dockerに割り当てるメモリが2GBになっているので、8GBに変更する。ステータスバーのDockerアイコンをクリックして、Preferencesを開き、Advancedタブで、メモリを2GBから8GBに変更して、Apply & Restartをクリックする。
(API Connectのマニュアルより、最低メモリ4GB、CPU 2コアが必要となっている。）

![スクリーンショット 2017-05-12 14.40.30.png](https://qiita-image-store.s3.amazonaws.com/0/122053/8c7ebf86-b2d1-7e0e-db0e-6ed927727833.png "スクリーンショット 2017-05-12 14.40.30.png")


ステータスバーのアイコンをクリックして、About Dockerを選択すると、導入したDockerのバージョンが確認できる。
バージョンは17.03.1となっている。
![スクリーンショット 2017-05-12 14.45.52.png](https://qiita-image-store.s3.amazonaws.com/0/122053/bde574f5-2ebc-6b45-6a7f-95cc332e3c5c.png "スクリーンショット 2017-05-12 14.45.52.png")

コマンドで導入したバージョンを確認してみると以下の通り。

```
$ docker --version
Docker version 17.03.1-ce, build c6d412e
$ docker-compose --version
docker-compose version 1.11.2, build dfed245
$ docker-machine --version
docker-machine version 0.10.0, build 76ed2a6
```

## DataPowerのインストール

DataPowerの[リポジトリー](https://hub.docker.com/r/ibmcom/datapower/)からdocker pullする。


```
$ docker pull ibmcom/datapower
Using default tag: latest
latest: Pulling from ibmcom/datapower
44841faa4a91: Pull complete 
3d22e78e4ead: Pull complete 
Digest: sha256:dd1c925fd070ba09068009ee1857588d2c24f8ac017411da920a4e9889231829
Status: Downloaded newer image for ibmcom/datapower:latest
```


以下のコマンドでDataPowerを起動。
5秒くらいで上がってきた。以下の感じでログ出力されている。

```
$ docker run --name datapower -it -e DATAPOWER_ACCEPT_LICENSE=true -e DATAPOWER_INTERACTIVE=true -p 9090:9090 ibmcom/datapower
  
20170512T063935.156Z [0x8040006b][system][notice] logging target(default-log): Logging started.
20170512T063935.492Z [0x804000fe][system][notice] : Container instance UUID: f6c4df13-d933-4790-9f9f-f0b2c9e977dc, Cores: 2, vCPUs: 2, CPU model: Intel(R) Core(TM) i7-6567U CPU @ 3.30GHz, Memory: 7973.7MB, Platform: docker, OS: dpos, Edition: developers-limited, Up time: 0 minutes
20170512T063935.512Z [0x8100006f][system][notice] : Executing default startup configuration.
20170512T063935.512Z [0x8040001c][system][notice] : DataPower IDG is on-line.
20170512T063935.946Z [0x8100006d][system][notice] : Executing system configuration.
20170512T063935.947Z [0x8100006b][mgmt][notice] domain(default): tid(8031): Domain operational state is up.
20170512T063939.112Z [0x806000dd][system][notice] cert-monitor(Certificate Monitor): tid(399): Enabling Certificate Monitor to scan once every 1 days for soon to expire certificates 
20170512T063945.459Z [0x8100003b][mgmt][notice] domain(default): Domain configured successfully.
```

ユーザー`admin`、パスワード`admin`でログインできる。

```
login: admin
Password: *****

Welcome to IBM DataPower Gateway console configuration. 
Copyright IBM Corporation 1999-2017 

Version: IDG.7.5.2.6 build 286852 on Apr 21, 2017 10:45:02 AM
Serial number: 0000001

idg# 
```

以下のコマンドでWeb UIを有効化する。

```
idg# configure terminal
Global configuration mode
idg(config)# web-mgmt
Modify Web Management Service configuration

idg(config web-mgmt)# admin-state "enabled"
idg(config web-mgmt)# local-address "eth0_ipv4_1" "9090"
idg(config web-mgmt)# idle 0
idg(config web-mgmt)# exit
```


ブラウザからlocalhostへ9090ポートでアクセスすると、DataPowerのログイン画面が表示。ユーザー`admin`、パスワード`admin`でログインできる。
https://localhost:9090/

![スクリーンショット 2017-05-12 15.46.38.png](https://qiita-image-store.s3.amazonaws.com/0/122053/948416ab-2285-a933-5ca6-f9359f50136b.png "スクリーンショット 2017-05-12 15.46.38.png")


## DataPowerの停止と起動

`docker ps`コマンドで確認すると、コンテナーの起動状態を確認できる。

```
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
3511aa7664be        ibmcom/datapower    "/bin/drouter"      11 days ago         Up 5 seconds        0.0.0.0:9090->9090/tcp   datapower
```


`docker stop`コマンドで停止できる。

```
$ docker stop datapower
datapower
```


`docker start`コマンドで再度起動できる。

```
$ docker start -i -a datapower
```

以上、VM版や物理アプライアンス版のDataPowerと比べ物にならないくらい早く上がってきて、軽量に使えそうです。