[Hinweis] Verfahren zur Erfassung der Docker-Version Db2

1. Zuallererst

Ich habe zuvor die Schritte zum Bereitstellen von Db2 in einer Linux-Umgebung zusammengefasst.

[Hinweis] Zusammenfassung der Db2-Installationsprozedur (Linux) https://qiita.com/Haruka-Ogawa/items/9576399209b32f3016ea

Db2 ist seit 2017 in der Docker-Version verfügbar Sie können die Db2-Umgebung einfacher verwenden, indem Sie sie aus dem Docker-Store abrufen.

Dieses Mal werde ich das Verfahren zum Abrufen des Db2-Containers von Docker zusammenfassen.

2. Vorbereitung

Lassen Sie Docker auf Ihrem PC installieren. Dieses Mal haben wir Docker v19.03.12 auf einem Mac-PC installiert.

$ docker -v
Docker version 19.03.12, build 48a66213fe

3. Arbeiten

3-1. Bildaufnahme

Holen Sie sich zuerst das Db2-Bild.

Verwenden Sie den Befehl ** docker pull **, um das Bild abzurufen. Öffnen Sie den folgenden Link und kopieren Sie den Befehl ** docker pull **, um das Db2-Bild auf der rechten Seite des Bildschirms zu erhalten.

https://hub.docker.com/r/ibmcom/db2

image.png

Führen Sie den kopierten Befehl ** docker pull ** aus.

$ docker pull ibmcom/db2
Using default tag: latest
latest: Pulling from ibmcom/db2
524b0c1e57f8: Pull complete 
e7a9171c839a: Pull complete 
f4447742b873: Pull complete 
db90696d3502: Pull complete 
6acc1312ab24: Pull complete 
67e9a72bc07a: Pull complete 
2b9e6b7678c7: Pull complete 
Digest: sha256:cf95dd272a4f99d7f9119945ecad04b64ad3a2badc8a6682f1105aa87279da60
Status: Downloaded newer image for ibmcom/db2:latest
docker.io/ibmcom/db2:latest

[Referenz] Docker-Dokument: ziehen https://docs.docker.jp/engine/reference/commandline/pull.html

3-2. Bildbestätigung

Zeigen Sie die Liste der Bilder an, die mit dem Befehl ** Docker-Bilder ** aufgenommen und angezeigt wurden Vergewissern Sie sich, dass das db2-Bild erhalten wurde.

$ docker images
REPOSITORY               TAG                  IMAGE ID            CREATED             SIZE
ibmcom/db2               latest               d6b3abc02d57        2 months ago        2.69GB

[Referenz] Docker-Dokument: Bilder https://docs.docker.jp/engine/reference/commandline/images.html

3-3. Containererstellung / -start

Führen Sie den Befehl ** docker run ** aus, um den Db2-Container zu erstellen und zu starten. Der diesmal ausgeführte Befehl basiert auf der Anleitung von Docker Hub: ibmcom / db2.

$ docker run -itd --name mydb --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=passw0rd -e DBNAME=testdb -v /Users/ogawa/db2fs:/database ibmcom/db2
67070db8cf20d82a9be8b45454eb1d5239c6c4d33b685c8ab9503a3bcc84e68b

[Referenz] Docker Hub: ibmcom / db2 https://hub.docker.com/r/ibmcom/db2

[Referenz] Docker-Dokument: Ausführen https://docs.docker.jp/engine/reference/commandline/run.html

3-4 Überprüfen Sie das Containerprotokoll

Überprüfen Sie das Containerprotokoll mit dem Befehl ** Docker-Protokolle ** Bestätigen Sie, dass der Container erstellt und gestartet wurde.

$ docker logs -f mydb
(*) Previous setup has not been detected. Creating the users... 
(*) Creating users ...
(*) Creating instance ... 
DBI1446I  The db2icrt command is running.


DB2 installation is being initialized.

 Total number of tasks to be performed: 4 
Total estimated time for all tasks to be performed: 309 second(s) 

Task #1 start
Description: Setting default global profile registry variables 
Estimated time 1 second(s) 
Task #1 end 

Task #2 start
Description: Initializing instance list 
Estimated time 5 second(s) 
Task #2 end 

Task #3 start
Description: Configuring DB2 instances 
Estimated time 300 second(s) 
Task #3 end 

Task #4 start
Description: Updating global profile registry 
Estimated time 3 second(s) 
Task #4 end 

The execution completed successfully.

For more information see the DB2 installation log at "/tmp/db2icrt.log.77".
DBI1070I  Program db2icrt completed successfully.


09/09/2020 03:16:06     0   0   SQL1032N  No start database manager command was issued.
SQL1032N  No start database manager command was issued.  SQLSTATE=57019
(*) Cataloging existing databases
ls: cannot access /database/data/db2inst1/NODE0000: No such file or directory
(*) Applying Db2 license ...

LIC1402I  License added successfully.


LIC1426I  This product is now licensed for use as outlined in your License Agreement.  USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF THE TERMS OF THE IBM LICENSE AGREEMENT, LOCATED IN THE FOLLOWING DIRECTORY: "/opt/ibm/db2/V11.5/license/en_US.iso88591"
(*) Saving the checksum of the current nodelock file ...
(*) Updating DBM CFG parameters ... 
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
successfully.
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
successfully.
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed 
successfully.
No Cgroup memory limit detected, instance memory will follow automatic tuning
(*) Remounting /database with suid... 
(*) Nothing appears in the Db2 directory. will skip update/upgrade.
(*) Code level is the same. No update/upgrade needed.

DB2 State : Operable
DB2 has not been started
Starting DB2...

09/09/2020 03:16:35     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
(*) User chose to create testdb database
(*) Creating database testdb ... 
DB20000I  The CREATE DATABASE command completed successfully.
DB20000I  The ACTIVATE DATABASE command completed successfully.
09/09/2020 03:18:38     0   0   SQL1026N  The database manager is already active.
SQL1026N  The database manager is already active.
### Enabling LOGARCHMETH1

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.4.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TESTDB

DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W  One or more of the parameters submitted for immediate modification 
were not changed dynamically. For these configuration parameters, the database 
must be shutdown and reactivated before the configuration parameter changes 
become effective.
### Restarting DB2
09/09/2020 03:18:46     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
09/09/2020 03:18:51     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
### Making backup directory and performing backup

Backup successful. The timestamp for this backup image is : 20200909031855

(*) Applying autoconfiguration for instance ... 

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.4.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TESTDB

DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W  One or more of the parameters submitted for immediate modification 
were not changed dynamically. For these configuration parameters, the database 
must be shutdown and reactivated before the configuration parameter changes 
become effective.
DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.
DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W  One or more of the parameters submitted for immediate modification 
were not changed dynamically. For these configuration parameters, the database 
must be shutdown and reactivated before the configuration parameter changes 
become effective.
DB20000I  The SQL command completed successfully.
09/09/2020 03:19:15     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
09/09/2020 03:19:20     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
(*) Skipping TEXT_SEARCH setup for database testdb because TEXT_SEARCH is not configured for the instance ...
ssh-keygen: generating new host keys: RSA1 RSA DSA ECDSA ED25519 
(*) All databases are now active. 
(*) Setup has completed.
FALSE

2020-09-09-03.19.20.117938+000 I223959E393           LEVEL: Warning
PID     : 14939                TID : 139881437169536 PROC : db2start
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
FUNCTION: DB2 UDB, base sys utilities, sqleReleaseStStLockFile, probe:16076
MESSAGE : Released lock on the file:
DATA #1 : String, 50 bytes
/database/config/db2inst1/sqllib/ctrl/db2strst.lck

2020-09-09-03.19.37.389298+000 I224353E420           LEVEL: Warning
PID     : 14947                TID : 140530994374400 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 15                   EDUNAME: db2wlmtm 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

2020-09-09-03.20.07.369457+000 I224774E420           LEVEL: Warning
PID     : 14947                TID : 140530994374400 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 15                   EDUNAME: db2wlmtm 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

2020-09-09-03.20.37.353793+000 I225195E420           LEVEL: Warning
PID     : 14947                TID : 140530994374400 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 15                   EDUNAME: db2wlmtm 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

2020-09-09-03.21.07.337071+000 I225616E420           LEVEL: Warning
PID     : 14947                TID : 140530994374400 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 15                   EDUNAME: db2wlmtm 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

2020-09-09-03.24.02.151703+000 I226037E420           LEVEL: Warning
PID     : 14947                TID : 140530994374400 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 15                   EDUNAME: db2wlmtm 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

2020-09-09-03.24.02.031095+000 I226458E419           LEVEL: Warning
PID     : 14947                TID : 140530998568704 PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
HOSTNAME: 67070db8cf20
EDUID   : 14                   EDUNAME: db2wlmt 0
FUNCTION: DB2 UDB, base sys utilities, sqleTimedSleep, probe:1182
DATA #1 : unsigned integer, 8 bytes
1.59962E+12
DATA #2 : unsigned integer, 8 bytes
1.59962E+12

[Referenz] Docker-Dokumentation: Protokolle https://docs.docker.jp/engine/reference/commandline/logs.html

3-5. Containerbestätigung

Zeigen Sie die Liste der Container mit dem Befehl ** docker ps ** an Überprüfen Sie den Status des Db2-Containers.

$ docker ps -a
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS                       PORTS                                                          NAMES
67070db8cf20        ibmcom/db2                                  "/var/db2_setup/lib/…"   About an hour ago   Up About an hour             22/tcp, 55000/tcp, 60006-60007/tcp, 0.0.0.0:50000->50000/tcp   mydb

[Referenz] Docker-Dokumentation: ps https://docs.docker.jp/engine/reference/commandline/ps.html

3-6. Befehlsausführung im Container

Der Befehl ** docker exec ** kann jeden Befehl innerhalb des Containers ausführen. Starten Sie bash und wechseln Sie zu db2inst1, um in die db2-Umgebung zu gelangen.

$ docker exec -ti mydb bash -c "su - db2inst1"
Last login: Wed Sep  9 04:48:57 UTC 2020

[Referenz] Docker-Dokument: exec https://docs.docker.jp/engine/reference/commandline/exec.html

3-7 Db2-Umgebungsprüfung

Stellen Sie sicher, dass der Befehl Db2 ausgeführt werden kann.

--Überprüfen Sie die Version von db2

Führen Sie den Befehl ** db2level ** aus, um die Db2-Version zu überprüfen.

[db2inst1@67070db8cf20 ~]$ db2level
DB21085I  This instance or install (instance name, where applicable: 
"db2inst1") uses "64" bits and DB2 code release "SQL11054" with level 
identifier "0605010F".
Informational tokens are "DB2 v11.5.4.0", "s2006161200", "DYN2006161200AMD64", 
and Fix Pack "0".
Product is installed at "/opt/ibm/db2/V11.5".

--Datenbankverbindung

Zum Zeitpunkt der Ausführung des Befehls ** docker run ** wurde die Datenbank * testdb * erstellt. Stellen Sie mit dem Befehl ** connect ** eine Verbindung zur Datenbank * testdb * her.

[db2inst1@67070db8cf20 ~]$ db2 connect to testdb

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.4.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TESTDB

--Tabelle erstellen

Erstellen wir eine Tabelle * TBL1 * in der Datenbank * testdb *.

[db2inst1@67070db8cf20 ~]$ db2 "CREATE TABLE TBL1(COL1 INTEGER, COL2 VARCHAR(50))"
DB20000I  The SQL command completed successfully.

Trennen Sie die Verbindung zur Datenbank * testdb * mit dem Befehl ** terminate **.

[db2inst1@67070db8cf20 ~]$ db2 terminate
DB20000I  The TERMINATE command completed successfully.

Ich habe den Befehl Db2 ausgeführt und bestätigt, dass er bedient werden kann.

Verwenden Sie beim Beenden des Containers den Befehl exit.

[db2inst1@67070db8cf20 ~]$ exit
logout

4. Container starten / stoppen

Starten / Stoppen des erstellten Containers Verwenden Sie den Befehl ** Docker Start ** und den Befehl ** Docker Stop **.

4-1. Starten

Starten Sie den Db2-Container (* mydb *) mit dem Befehl ** docker start **.

$ docker start mydb
mydb

[Referenz] Docker-Dokument: Start https://docs.docker.jp/engine/reference/commandline/start.html

4-2. Stopp

Verwenden Sie den Befehl ** docker stop *, um den Db2-Container ( mydb *) zu stoppen.

$ docker stop mydb
mydb

[Referenz] Docker-Dokumentation: Stop https://docs.docker.jp/engine/reference/commandline/stop.html

5. Schlussfolgerung

Dieses Mal habe ich versucht, Db2 als Docker-Container zu ziehen.

Wenn Sie einen PC mit Docker installiert haben, können Sie die Db2-Umgebung sehr einfach verwenden. Die Arbeit selbst war in ungefähr 10 Minuten abgeschlossen, daher hielt ich es für zweckmäßig, wenn ich den Betrieb von Db2 für eine Weile überprüfen wollte.

Referenzinformationen

Db2 und Docker https://www.ibm.com/blogs/solutions/jp-ja/db2-docker/

Docker Hub:ibmcom/db2 https://hub.docker.com/r/ibmcom/db2

Recommended Posts

[Hinweis] Verfahren zur Erfassung der Docker-Version Db2
Konstruktionsverfahren für Rails on Docker-Umgebungen
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Aufbau einer IntelliJ + Docker (APP + DB) + SpringBoot (Maven) -Umgebung
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Aufbau der Rails Docker-Umgebung
Installieren Sie, indem Sie die Version von Django in der Docker-Umgebung angeben