注意:本記事は以下の環境により動作確認をしています。
ゲスト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には塩対応なのかしら(´・ω・`)