docker安装使用DB2
安装镜像
- 拉取镜像
docker search db2 # 搜索镜像
docker pull ibmcom/db2 #下载镜像
docker images |grep -i db2 # 查询下载的镜像
- 启动db2(挂载请参考参考链接里的内容)
docker run -d -p 50000:50000 --name db2 --privileged=true -e DB2INSTANCE=test -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept -v /home/db2data:/db2data ibmcom/db2
命令:
docker run
-d
在后台启动容器-p 50000:50000
ip映射,主机ip:容器ip--name db2
将容器命名为 db2--privileged=true
使得容器内的 root 拥有真正的 root 权限- -
e DB2INSTANCE=test
设置环境变量,设置用户名 -e DB2INST1_PASSWORD=123456
设置密码-e DBNAME=testdb
设置数据库名-e LICENSE=accept
接受协议-v /home/db2data:/db2data
绑定目录,后面要通过数据库命令操作设置数据保存位置ibmcom/db2
镜像名
使用数据库
-
进入容器
$ docker exec -it containerName bash # 进去db2容器 $ su - db2inst1 # 切换用户 $ db2start # 数据库启动 $ db2stop # 数据库关闭 $ db2pd – # 查看运行状态 $ db2level # 查看数据库和补丁版本
-
操作命令
$ db2 list tables for user #列出用户表 $ db2 list db directory # 查看已经创建的数据库 $ db2 connect to testdb # 连接数据库 $ db2 get db cfg for uppdb #查询db2数据库相关配置(日志,字符集) $ db2 list applications # 查看数据库应用连接 $ db2 force application all #断开数据库应用连接 $ db2 activate database <dbname> #激活数据库实例 $ db2sampl #创建默认数据库“SAMPLE” $ db2 create db [dbname] #创建数据库 $ db2 list db directory #列出所有数据库 $ db2 connect to basedb user db2inst1 using db2root-pwd #连接数据库 $ db2 describe table table_name # 查看数据库表 $ db2 connect reset #断开连接 exit断开数据库连接 $ db2 select current schema from sysibm.sysdummy1 #查看当前schema $ db2 set current schema [schemaName] #重置当前schema $ db2 list active databases #列出所有激活的数据库 $ db2 get db cfg #列出所有数据库配置 $ db2 drop database [dbname] #删除数据库
把容器的数据文件挂载出来
-
创建容器时指定挂载文件
#创建容器时增加参数 -v /home/db2data:/db2data # 在/home/db2data下创建挂载目录 mkdir /home/db2data/data /home/db2data/dbpath /home/db2data/log
-
创建数据库时指定文件夹
create db testdb on /db2data/data dbpath on /db2data/dbpath using codeset utf-8 territory cn
-
指定容器日志位置
db2 update db cfg for testdb using newlogpath /db2data/log
-
激活数据库
db2 activate db testdb
-
由于容器是静态的,所以每次重启容器之后都需要做
catalog
,否则无法访问数据库$ db2 catalog db testdb as testdb on /db2data/dbpath $ db2 connect to testdb
-
为了更加方便,可以使用已经配置
catalog
的容器创建一个新镜像,不用重复使用catalog
等重复配置命令,每次重启容器都可以可以直接访问testdb数据库docker commit db2容器名 db2_image_new新的镜像名
-
同时,还可以保存镜像为
tar包
,以便部署在其他机器docker save db2_image_new > db2_image_new.tar
spring连接db2配置
db2连接
url: jdbc:db2://<DB2的IP>:<端口>/<数据库名>:currentSchema=<所要连接的schema名>