docker安装db2数据库
查询可安装的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
- docker.io docker.io/angoca/db2-instance OLD - . Prepares the environment to creat... [OK]
- docker.io docker.io/angoca/db2-install . Downloads from IBM and installs DB2 Exp... [OK]
- docker.io docker.io/datagrip/db2 docker-env-db2 [OK]
- docker.io docker.io/zongqiang/db2v10.5expc DB2 v10.5.0. Express-C
- docker.io docker.io/angoca/db2-sample . DB2 sample database in db2inst1 instanc...
- docker.io docker.io/angoca/db2inst1 . DB2 instance (db2inst1) running without... [OK]
- docker.io docker.io/ibmoms/db2express-c DB2 Express-C
- docker.io docker.io/db260179/guacamole-combined Dockerfile for Guacamole with embedded Mar...
- docker.io docker.io/pheasanthunters/db2express-c IBM DB2 Express-C
- docker.io docker.io/cwds/db2 This is a Docker image with DB2 Express-C ...
- docker.io docker.io/henriquemoreno/db2express-c IBM db2express-c
- docker.io docker.io/hmlandregistry/db2_developer_c Mirror of DB2 developer. No other changes.
- docker.io docker.io/ignatov/db2 db2 [OK]
- docker.io docker.io/taskana/db2 Preconfigured db2 database(s) for taskana
- docker.io docker.io/butler54/db2-update DB2 update test
- docker.io docker.io/cuball0/db2express-server db2express-server [OK]
- docker.io docker.io/db2eventstore/icp-dev-jupyter
- docker.io docker.io/eewswee/db2 DB2 lab
- docker.io docker.io/hreeinfodb/db2 db2
- docker.io docker.io/ibmcom/db2-amd64 Db2 - The AI Database
- docker.io docker.io/ibmcom/db2u.instdb
- docker.io docker.io/ibmcom/db2u.tools
- docker.io docker.io/maketechnology/db2 DB2 express with sample data [OK]
- docker.io docker.io/rodrigotsuru/db2-docker DB2 Docker build [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=db2root-pwd -e LICENSE=accept docker.io/ibmcom/db2express-c:latest bash
- [root@docker-servers ~]# docker run -it --network=host -p50000: -e DB2INST1_PASSWORD=db2root-pwd -e LICENSE=accept docker.io/ibmcom/db2express-c:latest bash
- Changing password for user db2inst1.
- New password: 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软件的许可证协议.
切换到实例用户db2inst1
# su - db2inst1
- [root@docker-servers /]# su - db2inst1
- Last login: Wed May :: UTC
- [db2inst1@docker-servers ~]$
启动实例
$ 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.
查看运行状态
$ db2pd -
- [db2inst1@docker-servers ~]$ db2pd -
- Database Member -- Active -- Up days :: -- Date ---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=
查看数据库和补丁版本
$ db2level
- [db2inst1@docker-servers ~]$ db2level
- DB21085I This instance or install (instance name, where applicable:
- "db2inst1") uses "" bits and DB2 code release "SQL10055" with level
- identifier "0606010E".
- Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
- "".
- Product is installed at "/home/db2inst1/sqllib".
显示运行的Db2容器信息,在宿主机上运行
# docker ps | grep db2
- [root@docker-servers ~]# docker ps | grep db2
- e180d38c218f docker.io/ibmcom/db2express-c:latest "/entrypoint.sh bash" minutes ago Up minutes focused_visvesvaraya
重启容器,通过-v选项指定宿主机目录和容器目录的映射关系
# docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /home/db2data:/db2data ibmcom/db2express-c:latest bash
宿主机目录为/home/db2data,容器目录为/db2data
- [root@docker-servers ~]# docker run -it --network=host -p50000: -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /home/db2data:/db2data ibmcom/db2express-c:latest bash
- Changing password for user db2inst1.
- New password: BAD PASSWORD: The password contains the user name in some form
- Retype new password: passwd: all authentication tokens updated successfully.
查看挂载
# df -h
- [root@docker-servers /]# df -h
- Filesystem Size Used Avail Use% Mounted on
- rootfs 560G 64G 497G % /
- overlay 560G 64G 497G % /
- tmpfs 12G 12G % /dev
- tmpfs 12G 12G % /sys/fs/cgroup
- /dev/mapper/centos-home 200G 20G 181G 10% /db2data
- /dev/mapper/centos-root 560G 64G 497G % /etc/hosts
- shm 64M 64M % /dev/shm
- tmpfs 12G 12G % /proc/acpi
- tmpfs 12G 12G % /proc/kcore
- tmpfs 12G 12G % /proc/keys
- tmpfs 12G 12G % /proc/timer_list
- tmpfs 12G 12G % /proc/timer_stats
- tmpfs 12G 12G % /proc/sched_debug
- tmpfs 12G 12G % /proc/scsi
- tmpfs 12G 12G % /sys/firmware
设置目录权限,其中db2data为表空间的目录、log为日志目录、dbpath为创建数据库时的dbpath。
- [root@docker-servers /]# ls
- bin db2data dev entrypoint.sh epel-release--.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 db2data
- [root@docker-servers /]#
- [root@docker-servers /]# su - db2inst1
- Last login: Wed May :: UTC
- [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]$ mkdir data
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ mkdir dbpath
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ mkdir log
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ pwd
- /db2data
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ ls
- data dbpath log
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ ls -lrt
- total
- drwxrwxr-x db2inst1 db2inst1 Dec : data
- drwxrwxr-x db2inst1 db2inst1 Dec : dbpath
- drwxrwxr-x db2inst1 db2inst1 Dec : log
查看缺省的dbpath
$ db2 get dbm cfg | grep -i dbpath
- [db2inst1@docker-servers db2data]$ db2 get dbm cfg | grep -i dbpath
- Default database path (DFTDBPATH) = /home/db2inst1
创建用户数据库mydb
$ db2 "create db mydb on /db2data/data dbpath on /db2data/dbpath using codeset utf-8 territory cn"
- [db2inst1@docker-servers db2data]$ 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.
- [db2inst1@docker-servers db2data]$
- [db2inst1@docker-servers db2data]$ db2 "create db mydb on /db2data/data dbpath on /db2data/dbpath using codeset utf-8 territory cn"
- DB20000I The CREATE DATABASE command completed successfully.
修改日志路径
$ db2 update db cfg for mydb using newlogpath /db2data/log
- [db2inst1@docker-servers db2data]$ db2 update db cfg for mydb using newlogpath /db2data/log
- DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
激活数据库
$ db2 activate db mydb
- [db2inst1@docker-servers db2data]$ db2 activate db mydb
- DB20000I The ACTIVATE DATABASE command completed successfully.
确认日志生效
- [db2inst1@docker-servers db2data]$ cd /db2data/log
- [db2inst1@docker-servers log]$
- [db2inst1@docker-servers log]$ ls
- NODE0000
- [db2inst1@docker-servers log]$ cd *
- [db2inst1@docker-servers NODE0000]$
- [db2inst1@docker-servers NODE0000]$ ls
- LOGSTREAM0000
- [db2inst1@docker-servers NODE0000]$
- [db2inst1@docker-servers NODE0000]$ cd *
- [db2inst1@docker-servers LOGSTREAM0000]$
- [db2inst1@docker-servers LOGSTREAM0000]$ ls
- S0000000.LOG S0000001.LOG S0000002.LOG SQLLPATH.TAG
- [db2inst1@docker-servers LOGSTREAM0000]$
- [db2inst1@docker-servers LOGSTREAM0000]$ ls -lrt
- total
- -rw------- db2inst1 db2inst1 Dec : SQLLPATH.TAG
- -rw------- db2inst1 db2inst1 Dec : S0000000.LOG
- -rw------- db2inst1 db2inst1 Dec : S0000001.LOG
- -rw------- db2inst1 db2inst1 Dec : S0000002.LOG
- [db2inst1@docker-servers LOGSTREAM0000]$
- [db2inst1@docker-servers LOGSTREAM0000]$ db2 get db cfg for mydb | grep -i primary
- Number of primary log files (LOGPRIMARY) =
- Percent max primary log space by transaction (MAX_LOG) =
由于容器是静态的,所以每次重启容器之后都需要做catalog,否则无法访问数据库。
$ db2 catalog db mydb as mydb on /db2data/dbpath
$ db2 connect to mydb
- [db2inst1@docker-servers LOGSTREAM0000]$ db2 catalog db mydb as mydb on /db2data/dbpath
- SQL1005N The database alias "mydb" already exists in either the local
- database directory or system database directory.
- [db2inst1@docker-servers LOGSTREAM0000]$
- [db2inst1@docker-servers LOGSTREAM0000]$ db2 connect to mydb
- Database Connection Information
- Database server = DB2/LINUXX8664 10.5.
- SQL authorization ID = DB2INST1
- Local database alias = MYDB
现在,可以提交修改到容器
# docker ps -a
# docker commit bee1d5a3d26f ibmcom/db2express-c-new
- [root@docker-servers ~]# docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- bee1d5a3d26f ibmcom/db2express-c:latest "/entrypoint.sh bash" minutes ago Exited () seconds ago epic_cray
- [root@docker-servers ~]# docker commit bee1d5a3d26f ibmcom/db2express-c-new
- sha256:dabb4f81f8f0e62ad2da99520fe22412499792bd67f538e287c2d426914cbfd9
# docker images | grep db2
- [root@docker-servers ~]# docker images | grep db2
- ibmcom/db2express-c-new latest dabb4f81f8f0 minutes ago 1.71 GB
- docker.io/ibmcom/db2express-c latest 7aa154d9b73c years ago 1.71 GB
执行save命令持久化镜像,这里运行的目的是保存catalog db的信息,以便每次重启容器后可以直接访问mydb数据库
# docker save ibmcom/db2express-c-new>/home/ibm-db2express-c-new.tar
最后的结果是生成一个1.7GB大小的Tar文件
停止已经启动的db2container,以避免表空间访问冲突
重新启动新的image,发现不需要做catalog db了,说明这些信息已经持久化到影像中了
# docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /home/db2data:/db2data ibmcom/db2express-c-new:latest bash
- [root@docker-servers ~]# docker run -it --network=host -p50000: -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept -v /home/db2data:/db2data ibmcom/db2express-c-new:latest bash
- Changing password for user db2inst1.
- New password: BAD PASSWORD: The password contains the user name in some form
- Retype new password: passwd: all authentication tokens updated successfully.
切换到db2inst1用户
# su - db2inst1
- [root@docker-servers /]# su - db2inst1
- Last login: Wed Dec :: UTC 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
- [db2inst1@docker-servers ~]$ db2 connect to mydb
- Database Connection Information
- Database server = DB2/LINUXX8664 10.5.
- SQL authorization ID = DB2INST1
- Local database alias = MYDB
查看有哪些数据库
$ db2 list db directory
- [db2inst1@docker-servers ~]$ db2 list db directory
- System Database Directory
- Number of entries in the directory =
- Database entry:
- Database alias = MYDB
- Database name = MYDB
- Local database directory = /db2data/dbpath
- Database release level = 10.00
- Comment =
- Directory entry type = Indirect
- Catalog database partition number =
- Alternate server hostname =
- Alternate server port number =
查看有哪些用户表
$ db2 list tables
- [db2inst1@docker-servers ~]$ db2 list tables
- Table/View Schema Type Creation time
- ------------------------------- --------------- ----- --------------------------
- record(s) selected.
查看表结构
$ db2 describe table table_name
取前n行数据
$ db2 select * from table_name fetch first nrows only
显示数据库版本
$ db2level
- [db2inst1@docker-servers ~]$ db2level
- DB21085I This instance or install (instance name, where applicable:
- "db2inst1") uses "" bits and DB2 code release "SQL10055" with level
- identifier "0606010E".
- Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
- "".
- Product is installed at "/home/db2inst1/sqllib".
连接数据库
db2 connect to dbname user <user_name>using <passwd>
参考博客:
Docker中安装DB2的详细教程和DBVisualize的安装教程
https://www.jianshu.com/p/0914ac2984f6
如何在DOCKER环境中使用DB2
https://www.cnblogs.com/yanwei-wang/p/8513371.html
如何在DOCKER环境中使用DB2
https://blog.csdn.net/qq_39154147/article/details/79219414
docker安装db2数据库的更多相关文章
- windows下安装DB2数据库以及使用Aqua Data Studio链接数据库
本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之 ...
- Docker学习实践 - Docker安装MySql数据库
Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...
- 使用Docker安装Oracle数据库
在很多时候,我们需要在本地安装Oracle数据库,但是整个安装的过程时间非常长而且安装文件大,那么有不有更好的办法来安装Oracle数据库既能减少安装的时间而且还能够快速进行部署呢?答案就是使用Doc ...
- Windows10 64位安装DB2数据库
安装前准备 : 系统:Windows10 64位 DB2 v9.5下载地址(迅雷):http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置,并复制记住: 去到解压的 ...
- 心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171 最近"全栈数据库"的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖 ...
- mac系统用docker安装oracle数据库
oracle没有mac可用的版本,最好的办法是通过docker安装 一.下载docker 1.通过brew下载 brew cask install docker 2.手动下载(需要vpn) https ...
- Docker安装MySQL数据库
本文翻译自:MySQL Docker Containers:Understanding the basics 1.下载MySQL镜像 docker pull mysql:5.6 如此便可以下载最新的M ...
- Docker安装Mysql数据库容器(zz)
zz自:http://blog.csdn.net/chengxuyuanyonghu/article/details/54380032 1.下载mysql的镜像: sudo docker pull m ...
- docker 安装mysql数据库 <二>
一.下载mysql数据库 #网易镜像中心https://c.163.com/hub#/m/home/ #采用网易加速地址,不加速时下载非常的慢 docker pull hub.c..com/libra ...
随机推荐
- 内置3D对象-Unity3D游戏开发培训
内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...
- numpy 数组的计算
一.数组和数的计算 数组和数计算,数组中的每个元素和数进行计算 1.加 import numpy as np arr1 = np.arange(12).reshape(3, 4) print(arr1 ...
- python 栈
栈的特点:先进后出 class Stack: def __init__(self): self.data = [] def push(self, val): self.data.append(val) ...
- Linux安装python和更新pip
一.安装python 1.安装依赖包 1).安装gcc 通过gcc --version 查看,若没有则安装gcc yum -y install gcc 2).安装其他依赖包 yum -y instal ...
- Linux中两个重要的基础服务
本文服务器基于centos7,客户端Windows10 FTP FTP(File Transfer Protocol),文件传输协议,是一个比较古老的基于TCP,用于不同计算机间传递文件的协议. 安装 ...
- 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi
Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL 严重: Error config ...
- 关于selenium无法在chrome中自动播放flash的问题
最近用selenium写个小脚本,遇到flash不能自动播放问题 我遇到的情况,直接提示 请确认是否安装flash,其实已经安装,点击下载flash,然后提示是否允许. 整了好久,发现终极方法: ## ...
- Windows10 java环境配置
1.下载 JDK 下载地址:https ://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 点击下载按钮 ...
- QEMU和KVM的关系
首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器).在支持VMX(Virtual Machin ...
- 工具之awk
转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html awk是一个强大的文本分析工具,相对于grep的查找,sed的编 ...