勉強用にDB2をDockerにインストール(Mac)

手順改訂 20231019
Db2 Community Edition の Docker イメージは、Docker HubからICRに移動されました。

IBM Documentation
Db2 Community Edition is a free, entry-level edition of the Db2 data server for the developer and partner community. Whi...

■前置き
基本公式の構築手順通りに進めていきます。
今回はMacOSへの導入手順を記事を載せていきますが、公式サイトにそれぞれの環境への導入手順が記載されているので、ご参考までに以下に公式ページのURLを載せておきます。
・Mac導入手順 https://www.ibm.com/docs/ja/db2/11.5?topic=system-macos
・Windows導入手順 https://www.ibm.com/docs/ja/db2/11.5?topic=system-windows
・Linux導入手順 https://www.ibm.com/docs/ja/db2/11.5?topic=system-linux

■前提条件
・MacにDockerDesktopをインストールし、起動しておく。

Install Docker Desktop on Mac
Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how...

■インストール手順
1.任意の場所にDBデータを保管するディレクトリを作成
 どこでもいいのでDockerディレクトリを作成し、作成したDockerディレクトリに移動
 ※自分はいつも使っているユーザー配下の作業ディレクトリ内に作成

$ mkdir Docker
$ cd Docker

2.イメージを取得
 docker pull コマンドを実行
 以前はDocker Hubからpullしていました。
 Db2 Community Edition の Docker イメージは、Docker HubからICR(IBM Cloud Registry)に移動されたので、 今回はICRからイメージをpullします。

$ sudo docker pull icr.io/db2_community/db2

取得した イメージを確認したい場合は、docker imagesコマンド

$ docker image ls
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
icr.io/db2_community/db2   latest    7beff879b820   4 months ago   2.84GB

3.Db2 Community Edition イメージ用の環境変数ファイル .env_listを作成
 .env_listをviテキストエディタで作成する

$ vi .env_list

 viテキストエディタが開けたら「i」キー押下でINSERTモードにし、以下記述を貼り付ける

#ライセンスの同意
LICENSE=accept
#Db2インスタンス名を指定
DB2INSTANCE=db2inst1
#Db2インスタンスのパスワードを指定
DB2INST1_PASSWORD=password
#ここで指定した名前で初期DBを作成します。必要ない場合は空でOK
DBNAME=testdb
#BLUアクセラレーション高速処理
BLU=false
#インスタンスのOracle互換性を有効または無効
ENABLE_ORACLE_COMPATIBILITY=false
#より高い Db2 レベルで新規コンテナーを実行している既存のインスタンスがある場合は、YES
UPDATEAVAIL=NO
#サンプル (定義済み) データベースを作成するか
TO_CREATE_SAMPLEDB=false
#Data Server Manager リポジトリー・データベースを作成するかどうか
REPODB=false
#Docker for Macをインストールする場合はtrue
IS_OSXFS=true
#Docker for Windowsをインストールする場合はtrue
PERSISTENT_HOME=true
#インスタンスの Db2 HADR を構成するかどうか ※レプリケーションのような機能
HADR_ENABLED=false
#ユーザー自身が指定した ETCD キー値ストアを指定
ETCD_ENDPOINT=
#ETCD のユーザー名資格情報を指定
ETCD_USERNAME=
#ETCD のパスワード資格情報を指定
ETCD_PASSWORD=

貼り付けできたら、escキーを押下し、INSERTモードをぬけて「:wq」と入力しENTERキーを押下で保存してviテキストエディタを閉じる
※viテキストエディタ操作について余談
「:w」が保存
「:q」が閉じる
「:wq」が保存して閉じる
「:q!」が書き込んだ内容を保存せずに閉じる

4.docker run コマンドを実行
 以下コマンド実行
 自分が作成したDockerディレクトリをフルパスで指定
※自分の場合、/Users/{ユーザー名}/work/Docker

$ docker run -h db2server --name db2server --restart=always --detach --privileged=true -p 50000:50000 --env-file .env_list -v {ディレクトリパス}/Docker:/database icr.io/db2_community/db2

5.起動したコンテナにログイン

docker exec -ti db2server bash -c "su - db2inst1"

※Dockerにインストールしているので、ログインはこんな感じだが、やっていることは下記と同じでスイッチしている。

$ su - db2inst1

これで導入は完了です。DB作成等ができる状態になりました。

今後の予定としてはデータベースからテーブルの作成、クライアントの構築、接続も記事にしていくつもりです。

コメント

タイトルとURLをコピーしました