Docker - 通过容器安装部署DB2数据库教程

Docker - 通过容器安装部署DB2数据库教程

我之前写过文件介绍如何使用 DB2 官方的安装程序进行 DB2 数据库的安装(点击查看)。本文介绍另一种方式:通过 Docker 来快速搭建 DB2 数据库环境,使用这种方式可以免去很多安装配置上的麻烦,方便快捷。

1,拉取镜像

(1)首先执行如下命令将镜像下载到本地:

1

docker pull ibmcom/db2


(2)由于镜像比较大(2.69G),执行如下命令删除所有 dangling 数据卷(即无用的 Volume),避免空间不足:

1

docker volume rm $(docker volume ls -qf dangling=true)

2,启动容器 

(1)执行如下命令实例化 DB2 服务:参数说明:

  • -d: 表示在后台启动容器;
  • -p 50000:50000: 容器内部的 50000 端口映射主机的 50000 端口;
  • --name db2:将容器命名为 db2
  • --privileged=true:使得容器内的 root 拥有真正的 root 权限。
  • -e DB2INST1_PASSWORD=marco-1234:设置内置实例用户 db2inst1 的密码为 marco-1234
  • -e DBNAME=testdb:容器启动时自动创建一个名为 testdb 的数据库,如果不指定该参数则不创建数据库
  • -e LICENSE=accept:接受协议
  • -v /usr/local/db2:/database:挂载目录,其中 /usr/local/db2 是宿主机的目录

1

docker run -d -p 50000:50000 --name db2 --privileged=true -e DB2INST1_PASSWORD=marco-1234 -e DBNAME=testdb -e LICENSE=accept -v /usr/local/db2:/database ibmcom/db2


(2)执行 docker ps 命令确认容器启动成功。

原文:Docker - 通过容器安装部署DB2数据库教程

3,执行命令

(1)首先执行如下命令进入 DB2 实例的命令环境中:

1

docker exec -it db2 /bin/bash


(2)执行如下命令切换到实例用户 db2inst1:

注意:一定要写中间的那个横条(-)。

1

su - db2inst1


(3)执行如下命令可以查看运行状态:

1

db2pd -

原文:Docker - 通过容器安装部署DB2数据库教程

(4)执行如下命令可以查看数据库和补丁版本:

1

db2level

原文:Docker - 通过容器安装部署DB2数据库教程

(5)执行如下命令可以查看已经创建的数据库,可以发现根据启动时的配置参数,目前创建一个 testdb 数据库:

1

db2 list db directory

原文:Docker - 通过容器安装部署DB2数据库教程

(6)执行如下命令连接 testdb 数据库:

1

db2 connect to testdb


(7)然后执行如下命令创建一个名为 TEST 的表:

注意:db2 命令后面的sql语句需要用引号括起来,否中会报 -bash: syntax error near unexpected token `(' 错误。

1

db2 "create table TEST(ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),USER_NAME VARCHAR(20),USER_AGES INT)"


(8)执行如下命令可以查看所以用户表,可以发现 TEST 表创建成功:

1

db2 list tables

原文:Docker - 通过容器安装部署DB2数据库教程


(9)我们还可以执行如下命令再创建一个 SAMPLE 数据库(样例数据库)

1

db2sampl (命令行直接运行)


(10)接着再次执行 db2 list dbdirectory 命令可以看到数据库创建成功:

原文:Docker - 通过容器安装部署DB2数据库教程

(11)最后执行 exit 即可退出容器,返回到宿主机。


 

4,执行命令

DB2数据库常用命令学习

db2start : 启动数据库实例
db2stop force : 停止数据库实例
db2pd - : 查看数据库运行状态
db2level查看数据库和补丁版本
db2ilist: 查看数据库已经安装的实例
db2 list db directory 查看当前实例下有哪些数据库
db2 connect to testdb:  连接到数据库实例testdb
db2 get instance :  显示当前数据库管理实例
db2 select current schema from sysibm.sysdummy1 – 查看当前数据库默认的schema
db2 SELECT CURRENT USER FROM SYSIBM.SYSDUMMY1 – 查看当前数据库默认的user
db2 list tables 列出数据库中的表(需要先连接数据库)
db2 describe table TABLENAME(表名) 查看表的信息
db2 list tables for all – 列出当前数据库下所有的表
db2 list tablespaces show detail – 显示数据库空间使用情况
db2 get db cfg :显示库实例的配置
db2 get db cfg for testdb : 显示testdb数据库配置
db2 list applications show detail 查看数据库连接详细信息
db2 list active databases 列出当前实例中正在使用的数据库
DB2DIR/instance/db2icrt -u FencedID instName : Linux上创建DB2实例
db2 attach to INSTName : 连接DB2实例
db2 detach : 断开DB2 实例
db2 get dbm cfg :查看DB2数据库实例
db2 update dbm cfg using 参数名 参数值
db2 reset dbm cfg : 复位实例参数为默认值
1、db2 connect to <数据库名>    --连接到 本地 数据库名
      db2 connect to <数据库名> user <用户名> using <密码> --连接到 远端 数据库
2、 db2 force application all      --强迫所有应用断开数据库连接
3、db2 backup db db2name<数据库名称>  --备份整个数据库数据
      db2 restore db <db2name>                     --还原数据库
4、 db2 list application --查看所有连接(需要连接到具体数据库才能查看)
5、db2stop    --停止数据库  
      db2start    --启动数据库
6、create database <数据库名> using codeset utf-8 territory CN    --创建数据库使用utf-8编码
7、db2 catalog 命令
    db2 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号>  --把远程数据库映射到本地接点一般为50000
    db2 catalog db <远程数据库名称> as <接点名称>  at node PUB11                       --远程数据库名称到本地接点
    db2 CONNECT TO <接点名称> user <用户名> using <密码>                               --连接本地接点访问远程数据库
8、数据库导出
db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql        --导出数据库的表结构,其中用户空间一般为
db2admin/db2inst2
db2look -d <数据库名> -u <用户> -t <表1> <表2>  -e -o <脚本名称>.sql   --导出数据库中表1和表2的表结构
db2move <数据库名> export              --导出数据库数据
db2move <数据库名> export -tn <表1>,<表2>       --导出数据库中表和表数据
9、数据库导入
db2 -tvf  <脚本名称>.sql       --把上述导出的表结构导入到数据库表结构
db2move <数据库名> load -lo replace   --把上述“db2move <数据库名> export “导出的数据导入到数据库中并把相同的数据替换掉
在实际使用过程中,如果用到db2自增主键,需要使用by default, 而不是always,功能是一样的,但这样在数据移植时候会很方便!
10、db2 connect reset 或 db2 terminate    --断开与数据库的连接
11、db2set db2codepage=1208        --修改页编码为1208
12、db2 describe table <表名>       --查看表结构
13、db2 list tables                            --查看数据库中所有表结构
        db2 list tables for system                  --列出所有系统表
14、db2 list tablespaces                  --列出表空间

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Docker是一种容器化技术,可在其中运行现代应用程序。Docker容器本身是一种虚拟化技术,它允许用户将应用程序与依赖项捆绑在一起,并以一种轻量级的方式运行在不同的环境中。Docker容器的关键优势在于能够轻松地在不同的环境中部署应用程序,达到开发人员和运维人员的持续整合、持续部署和持续交付。 Docker Compose是一种工具,它允许用户定义和运行多个Docker容器。使用Docker Compose可以轻松地配置容器之间的网络连接和依赖关系,使得多个Docker容器能够协同工作,从而形成一个完整应用程序。 连接本地数据库时,可以使用Docker Compose配置文件定义数据库容器和应用程序容器之间的连接。在Docker Compose配置文件中,可以指定数据库容器要映射到的本地端口,以及应用程序容器如何连接到本地数据库。例如,下面是一个简单的Docker Compose配置文件,用于连接一个MySQL数据库和一个PHP应用程序: version: '3.1' services: db: image: mysql:latest ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: example_password php: build: . ports: - "80:80" depends_on: - db environment: DB_HOST: db DB_USER: root DB_PASSWORD: example_password 在上面的Docker Compose配置文件中,我们定义了两个服务:一个MySQL数据库服务和一个PHP应用程序服务。数据库服务的镜像是MySQL的最新版。我们将其映射到本地端口3306,并设置了MySQL的root密码。PHP应用程序服务使用Dockerfile进行构建。我们将其映射到本地端口80,并指定它依赖于数据库服务。然后我们通过环境变量将应用程序容器连接到本地数据库。 总之,Docker容器Docker Compose的使用使得我们能够轻松地集成和部署多个容器,包括本地数据库,使得整个应用程序具有高效性、可靠性和扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值