查询可安装的db2镜像
# docker search db2
[root@docker-servers ~]# docker search db2
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ibmcom/db2 Db2 - The AI Database 35docker.io docker.io/angoca/db2-instance OLD - 2. Prepares the environment to creat... 18[OK]
docker.io docker.io/angoca/db2-install 1. Downloads from IBM and installs DB2 Exp... 9[OK]
docker.io docker.io/datagrip/db2 docker-env-db2 5[OK]
docker.io docker.io/zongqiang/db2v10.5expc DB2 v10.5.0.4 Express-C 5docker.io docker.io/angoca/db2-sample 4. DB2 sample database in db2inst1 instanc... 4docker.io docker.io/angoca/db2inst1 2. DB2 instance (db2inst1) running without... 4[OK]
docker.io docker.io/ibmoms/db2express-c DB2 Express-C 3docker.io docker.io/db260179/guacamole-combined Dockerfile for Guacamole with embedded Mar... 2docker.io docker.io/pheasanthunters/db2express-c IBM DB2 Express-C 2docker.io docker.io/cwds/db2 This is a Docker image with DB2 Express-C ... 1docker.io docker.io/henriquemoreno/db2express-c IBM db2express-c 1docker.io docker.io/hmlandregistry/db2_developer_c Mirror of DB2 developer. No other changes. 1docker.io docker.io/ignatov/db2 db2 1[OK]
docker.io docker.io/taskana/db2 Preconfigured db2 database(s) for taskana 1docker.io docker.io/butler54/db2-update DB2 update test 0docker.io docker.io/cuball0/db2express-server db2express-server 0[OK]
docker.io docker.io/db2eventstore/icp-dev-jupyter 0docker.io docker.io/eewswee/db2 DB2 lab 0docker.io docker.io/hreeinfodb/db2 db2 0docker.io docker.io/ibmcom/db2-amd64 Db2 - The AI Database 0docker.io docker.io/ibmcom/db2u.instdb 0docker.io docker.io/ibmcom/db2u.tools 0docker.io docker.io/maketechnology/db2 DB2 express with sample data 0[OK]
docker.io docker.io/rodrigotsuru/db2-docker DB2 Docker build 0 [OK]
docker-hub上拉取镜像到本地
# docker pull ibmcom/db2express-c
[root@docker-servers ~]# docker pull ibmcom/db2express-c
Using default tag: latest
Trying to pull repository docker.io/ibmcom/db2express-c ...
latest: Pulling from docker.io/ibmcom/db2express-c
a3ed95caeb02: Pull complete
aeb4552c46f2: Pull complete
67f42aa337c8: Pull complete
36add9e32b7b: Pull complete
cca79fe4efc9: Pull complete
47257c26990b: Pull complete
ffaad03725df: Pull complete
12bf772a460f: Pull complete
d7696ccb610d: Pull complete
6cf81245c65d: Pull complete
5dab63ce98e0: Pull complete
91dd2d768d97: Pull complete
e3aca141cf3e: Pull complete
Digest: sha256:6217d60b20b58e08e5189f467cfb9a08f3472cf6c3a5e5d5d91900791c709a86
Status: Downloaded newer image for docker.io/ibmcom/db2express-c:latest
查询下载镜像
# docker images | grep -i db2
[root@docker-servers ~]# docker images | grep -i db2
docker.io/ibmcom/db2express-c latest 7aa154d9b73c 4 years ago 1.71 GB
启动DB2容器
#docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=jqjq -e LICENSE=accept docker.io/ibmcom/db2express-c:latest bash
Changing password foruser db2inst1.
[root@docker-servers ~]# docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2root-pwd -e LICENSE=accept docker.io/ibmcom/db2express-c:latest bash
Changing password foruser db2inst1.
New password: Retype new password: passwd: all authentication tokens updated successfully.
切换到实例用户db2inst1
# su - db2inst1
[root@docker-servers /]# su - db2inst1
Last login: Wed May 20 21:57:28 UTC 2015[db2inst1@docker-servers ~]$
查看运行状态
$ db2pd -
[db2inst1@docker-servers ~]$ db2pd -
Database Member 0 -- Active -- Up 0 days 00:02:13 -- Date 2019-12-18-03.42.49.332209
查看已经创建的数据库
$ db2 list dbdirectory
[db2inst1@docker-servers ~]$ db2 list dbdirectory
SQL0104N An unexpected token "dbdirectory" was found following "LIST".
Expected tokens may include: "ACTIVE". SQLSTATE=42601
查看数据库和补丁版本
$ db2level
[db2inst1@docker-servers ~]$ db2level
DB21085I This instance or install(instance name, where applicable:
"db2inst1") uses "64" bits and DB2 code release "SQL10055"with level
identifier "0606010E".
Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
"5".
Product is installed at "/home/db2inst1/sqllib".
显示运行的Db2容器信息,在宿主机上运行
# docker ps | grep db2
[root@docker-servers ~]# docker ps | grepdb2
e180d38c218f docker.io/ibmcom/db2express-c:latest "/entrypoint.sh bash" 12 minutes ago Up 2 minutes focused_visvesvaraya
设置目录权限,其中db2data为表空间的目录、log为日志目录、dbpath为创建数据库时的dbpath
[root@docker-servers /]# lsbin db2data dev entrypoint.sh epel-release-7-5.noarch.rpm etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@docker-servers /]#
[root@docker-servers /]# chmod 777db2data
[root@docker-servers /]#
[root@docker-servers /]# su -db2inst1
Last login: Wed May 20 21:57:28 UTC 2015[db2inst1@docker-servers ~]$
[db2inst1@docker-servers ~]$ cd /db2data
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ ls[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ mkdirdata
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ mkdirdbpath
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ mkdirlog
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ pwd
/db2data
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ lsdata dbpath log
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ ls -lrt
total 0drwxrwxr-x 2 db2inst1 db2inst1 6 Dec 18 05:13data
drwxrwxr-x 2 db2inst1 db2inst1 6 Dec 18 05:14dbpath
drwxrwxr-x 2 db2inst1 db2inst1 6 Dec 18 05:14 log
重启容器,通过-v选项指定宿主机目录和容器目录的映射关系
# docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /data/jq/DB2:/db2data ibmcom/db2express-c:latest bash
宿主机目录为/data/jq/DB2(自拟),容器目录为/db2data(无需修改)
[root@docker-servers ~]# docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /data/jq/DB2:/db2data ibmcom/db2express-c:latest bash
Changing password foruser db2inst1.
New password: BAD PASSWORD: The password contains the user name insome form
Retype new password: passwd: all authentication tokens updated successfully.
- -p 50000:50000 允许远程的客户端可以从50000 端口连接到数据库实例.
- 通过指定 -e DB2INST1_PASSWORD=db2root-pwd 参数, 你可以为缺省的Db2实例用户db2inst1设置密码.注意:这里“DB2INST1”是用户名,而“b2root-pwd”是密码。
- 通过指定-e LICENSE=accept参数, 表示你接受了使用Db2软件的许可证协议.
查询所有docker容器
#docker ps -a
[root@docker-servers ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
718932fae876 ibmcom/db2express-c:latest "/entrypoint.sh bash" 6 days ago Exited (1) 6 days ago flamboyant_almeida
停止并删除之前启动的容器
#docker stop <容器 ID>
#docker rm -f <容器 ID>
查看缺省的dbpath
$ db2 get dbm cfg | grep -i dbpath
[db2inst1@docker-servers db2data]$ db2 get dbm cfg | grep -i dbpath
Default database path (DFTDBPATH) = /data/jq/DB2/dbpath
创建用户数据库mydb(数据库名自拟此例为MYDB)
$ db2 "db2 "create db mydb on /data/jq/DB2 dbpath on /data/jq/DB2/dbpath using codeset utf-8 territory cn"
[db2inst1@docker-servers db2data]$ db2start
SQL5043N Support for one or more communications protocols specified inthe DB2COMM environment variable failed to start successfully. However, core database manager functionality started successfully.
[db2inst1@docker-servers db2data]$
[db2inst1@docker-servers db2data]$ db2 "create db mydb on /data/jq/DB2 dbpath on /data/jq/DB2/dbpath using codeset utf-8 territory cn"
DB20000I The CREATE DATABASE command completed successfully.
激活数据库
$ db2 activate db mydb
[db2inst1@docker-servers db2data]$ db2 activate db mydb
DB20000I The ACTIVATE DATABASE command completed successfully.
进入docker
#docker exec -it sad_euclid bash
[root@docker-servers ~]# docker exec -it sad_euclid bash
[root@docker-servers /]#
切换到db2inst1用户
# su - db2inst1
[root@docker-servers /]# su -db2inst1
Last login: Wed Dec 18 05:13:28 UTC 2019 on console
启动db2
$ db2start
[db2inst1@docker-servers ~]$ db2start
SQL5043N Support for one or more communications protocols specified in the DB2COMM environment variable failed to start successfully. However, core database manager functionality started successfully.
连接db2中mydb库
$ db2 connect to mydb
用用户名密码连接数据库
db2 connect to dbname user <user_name>using <passwd>
[db2inst1@docker-servers ~]$ db2 connect to mydb
Database Connecti
on Information
Database server = DB2/LINUXX8664 10.5.5SQL authorization ID =DB2INST1
Local database alias = MYDB
显示数据库版本
$ db2level
[db2inst1@docker-servers ~]$ db2level
DB21085I This instance or install(instance name, where applicable:
"db2inst1") uses "64" bits and DB2 code release "SQL10055"with level
identifier "0606010E".
Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
"5".
Product is installed at "/home/db2inst1/sqllib".
查看数据库连接数
db2 get dbm cfg | grep Max --最大连接数
db2 list application show detail --当前连接数