DB2
を使うプロジェクトで開発時はh2
をDB2モードにしてやっていたりするのだが、どうしても対応していないSQLがでてきたりする。
ローカルマシンに入れるのも嫌だし、専用PC用意するのも嫌なのでDocker
でやってみた。
##準備
MacでDockerはじめましたを参考に準備する。
##DB2 Express-Cインストール済のイメージを取得する
イチからインストールするのも面倒なのでこれを使わせていただく。
docker pull angoca/db2-instance
##起動する
docker run -i -t --privileged=true --name="db2inst1" -p 50000:50000 angoca/db2-instance
ssh
でroot
ユーザーでログインした状態になる。
##インスタンスを作成する
ssh
でログインすると/tmp/db2_conf
にいる状態になっているはず。そのディレクトリにcreateInstance
というファイルがあるので実行する。
./createInstance
db2inst1
というインスタンスが作成され、db2inst1
ユーザーになる。
DB2
コマンドを確認してみる。
db2 list db directory
以下のような結果になればOK
SQL1031N The database directory cannot be found on the indicated file system.
SQLSTATE=58031
##日本語を使えるように設定する
このイメージはデフォルトでは日本語が使えないので設定する。この作業はroot
ユーザーで行う。
まずは現在の設定を試してみる。
echo $LANG
なにもでないはず。
以下を実行する。
sudo locale-gen ja_JP.UTF-8
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
設定がうまくいったかどうか試す。
echo $LANG
以下のような結果になればOK
ja_JP.UTF-8
##ホストマシンからアクセスしてみる
IPを確認
boot2docker ip
[ip:50000]でアクセスできる。
あとはcreate database
したりすればOK。
##Tips
###SSHから抜ける
ctrl + P + Q
で抜ける。exit
で抜けるとdocker
コンテナが終了してしまう。
###コンテナを起動
docker start db2inst1
###SSHで入る
docker attach db2inst1
##TODO
一連の流れをDockerfile
にしたい。