CentOS
vmware
db2
docker

CentOS7.4でDockerをインストール(おまけでDb2 Express-CをDockerで試してみる)

注意:本記事は以下の環境により動作確認をしています。

ゲストOS CentOS Linux release 7.4.1708 (Core)
ホストOS Windows 10
仮想化ソフト VMware Workstation 14 Player

2018年の正月はC#の勉強をするつもりでいたのですが、なぜかDockerを触っていました(´・ω・`) どうしてこうなった(´・ω・`)

それはさておきCentOS7.4でDockerをインストールした際のメモを共有します。といってもDocker公式の指示通り、進めていくだけ。それを読むことすら面倒というものぐさな人は以下のコマンドを順番にたたいていくだけで、Docker環境が構築できます(もちろんrootユーザで実行するか、すべてのコマンドにsudoを付与する必要があります)。

yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce

この時点でDockerが停止している場合は、以下のコマンドによりサービスを活性化させましょう。

systemctl start docker.service

ちなみにDockerが正常に活性化したかどうかは以下のコマンドで確認することができます。

systemctl status docker

せっかくDocker環境を構築したので、Docker Imageをインストールしてみたいと思います。今回練習に利用するのがDb2 Express-C。IBMが誇るRDBMSの無償版ですね。IBMが公式でDocker Imageを用意してくれているので、これを利用します。といってもDocker Hubの当該ページのREADMEに指示されている通りにコマンドをたたくだけ。それを読むことすら面倒というものぐさな人(2回目)はまずdocker pullコマンドによりimageをインストールします。

docker pull ibmcom/db2express-c

インストール後はdocker runコマンドでコンテナを起動します。このとき環境変数DB2INST1_PASSWORDは自分のわかりやすいものを設定してください。その名前の通りdb2inst1ユーザのパスワードになります。

docker run -it -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1passw0rd -e LICENSE=accept ibmcom/db2express-c:latest bash

このdocker runコマンドが正常終了すると「db2がインストールされたOSのターミナルに接続している」ような状態になります。そこでibmcom/db2express-cが用意しているインスタンスユーザ(db2inst1)でログインした後、インスタンスを活性化。サンプルDBを作成&接続し、作成されたテーブルの中身をのぞいてみましょう。

su - db2inst1
db2start
db2sampl
db2 connect to sample
db2 "select * from db2inst1.org"

すると以下のような内容がターミナルに表示されているはずです。

DEPTNUMB DEPTNAME       MANAGER DIVISION   LOCATION     
-------- -------------- ------- ---------- -------------
      10 Head Office        160 Corporate  New York     
      15 New England         50 Eastern    Boston       
      20 Mid Atlantic        10 Eastern    Washington   
      38 South Atlantic      30 Eastern    Atlanta      
      42 Great Lakes        100 Midwest    Chicago      
      51 Plains             140 Midwest    Dallas       
      66 Pacific            270 Western    San Francisco
      84 Mountain           290 Western    Denver       

  8 record(s) selected.

余談:前述したibmcom/db2express-cのDocker HubのREADMEによると、Db2は/opt/ibm/db2/V10.5というディレクトリにインストールされているそうなのですが――どう考えても見当たらない(´・ω・`)

[db2inst1@a7c227901722 ~]$ ls -la /opt/
total 0
drwxr-xr-x. 2 root root  6 Jun 10  2014 .
drwxr-xr-x. 1 root root 51 Jan  3 08:36 ..

また2018-01-03現在、Db2の最新版は11.1ですが、今回利用したImageで利用できるのは10.5。ちょっと古い(´・ω・`) IBM/Db2ちゃんはDockerには塩対応なのかしら(´・ω・`)