1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DB2 on Docker part2

Last updated at Posted at 2023-01-03

DB2 on DockerでDB2のインストールについて書きました。
最新の11.5.8.0についても動かしたいと思い色々試してみました。
参考サイトは以下です。
1.【備忘録】Db2 インストール手順まとめ(Linux)
2.DockerコンテナのCentOS7で 「Failed to get D-Bus connection: Operation not permitted」と出た時の対処方法

作成手順

1.参考サイト2にあるようにCentOS7のイメージを作成します。
タグは「kazu_centos:7」としました。

2.IBMのサイトからDB2を入手します。
v11.5.8_linuxx64_server_dec.tar.gzです。

3.応答ファイルを作成します。
ここではdb2server.rspとしました。

PROD                      = DB2_SERVER_EDITION
FILE                      = /opt/ibm/db2/V11.5
LIC_AGREEMENT             = ACCEPT
INSTALL_TYPE              = TYPICAL
LANG                      = JP
HOST                      = db2
INSTANCE                  = DB2_INST
DB2_INST.NAME             = db2inst1
DB2_INST.UID              = 501
DB2_INST.GROUP_NAME       = db2grp1
DB2_INST.GID              = 501
DB2_INST.HOME_DIRECTORY   = /home/db2inst1
DB2_INST.PASSWORD         = db2inst1
DB2_INST.AUTOSTART        = NO
DB2_INST.PORT_NUMBER      = 50000
DB2_INST.FCM_PORT_NUMBER  = 60000
DB2_INST.FENCED_USERNAME  = db2sdfe1
DB2_INST.FENCED_GROUP_NAME = db2sdfe1
DB2_INST.FENCED_GID       = 601
DB2_INST.FENCED_HOME_DIRECTORY = /home/db2sdfe1
DB2_INST.FENCED_PASSWORD  = db2sdfe1
DB2_INST.CONFIGURE_TEXT_SEARCH = NO

4.Dockerfileを用意します。

dockerfile
FROM kazu_centos:7

  RUN yum -y update ; yum -y install file libaio numactl libstdc++.so.6 pam-devel ksh pam-devel.i686 'compat-libstdc++-33-3.2.3-72.*'
  RUN rm /etc/localtime; ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
  ENV LANG="ja_JP.UTF-8" \
    LANGUAGE="ja_JP:ja" \
    LC_ALL="ja_JP.UTF-8"

  RUN groupadd --gid 501 db2grp1
  RUN useradd --gid db2grp1 --uid 501 --shell /bin/bash -m db2inst1
  RUN groupadd --gid 601 db2sdfe1
  RUN useradd --gid db2sdfe1 --uid 601 --shell /bin/bash -m db2sdfe1
  RUN echo 'export LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja LC_ALL=ja_JP.UTF-8' >> /home/db2inst1/.bashrc

  ADD v11.5.8_linuxx64_server_dec.tar.gz /tmp
  COPY db2server.rsp /tmp/server_dec
  ENV LANG=ja_JP.utf8

6.Docker buildを行います。

docker build --progress=plain --no-cache -t kazu_db2 .

7.Docker runで起動します。

docker run -it -h db2 --privileged=true --name="db2inst2" -p 50000:50000 kazu_db2

8.Docker execでコンテナイメージに入ります。

docker exec -it db2inst2 bash

9.db2をインストールします。

/tmp/server_dec/db2setup -r /tmp/server_dec/db2server.rsp

10.db2を起動します。

[root@db2 /]# su - db2inst1
Last login: 火  1月  3 11:56:37 JST 2023 on pts/1
[db2inst1@db2 ~]$ db2start
01/03/2023 11:57:04     0   0   SQL1063N  DB2START の処理が正常に終了しました。
SQL1063N  DB2START の処理が正常に終了しました。
[db2inst1@db2 ~]$

Dockerfile上でDB2のインストールまで行わない理由は参考サイトにあるとおりsystemctlを一度動くようにしてからDB2のインストールをするためです。このへんができれば一緒にしたいところです。

変更履歴

(2023/01/03)docker execコマンドのオプションの誤りを修正。応答ファイルにポート番号を指定するよう修正。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?