DB2 Express-Cという無償で使えるDB2があるが、残念ながらMacはサポートされていない。
http://www-01.ibm.com/software/data/db2/express-c/download.html
そこでDockerを使って環境を作る。使ったソフトウェアは以下の通り。
- Docker Machine 0.4.1
- Docker 1.8.3
- VirtualBox 5.0.10
インストール手順はいろんなところに書いてあるので割愛。VirtualBoxの仮想マシンを作成が完了した後はこんな感じ。
~ % docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default virtualbox Stopped
~ % docker-machine start default
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
~ % eval "$(docker-machine env default)"
~ % docker pull ibmcom/db2express-c
~ % docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ibmcom/db2express-c latest 2abb3b6fc22c 6 months ago 1.705 GB
~ % docker run -it -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash
ここまででDockerコンテナにログインできる。Macからコンテナに50000番ポートで接続するためにはVirtualBox上でのポートフォワーディングも必要。lsofでListenしていることを確認できる。
~ % VBoxManage controlvm default natpf1 "db2_pf,tcp,127.0.0.1,50000,,50000"
~ % lsof -P -i -n | grep 50000
ここまででMacからコンテナに50000番で接続できるようになった。後はDB2側で必要な設定をすればOK。
ibmcom/db2express-cに書いてある通りサンプルDBを作ったり、デーモンとして起動したりできる。
サンプルDBの作成
$ su - db2inst1
$ db2start
$ db2sampl
デーモンとして起動
docker run -d -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmcom/db2express-c:latest db2start
テスト用途ならコンテナの再起動でデータが消えても問題ないことが多いと思われるのでここで作業を終わりにするが、永続化が必要な場合は別途設定が必要。