查询可安装的db2镜像

# docker search db2

  1. [root@docker-servers ~]# docker search db2
  2. INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. docker.io docker.io/ibmcom/db2 Db2 - The AI Database
  4. docker.io docker.io/angoca/db2-instance OLD - . Prepares the environment to creat... [OK]
  5. docker.io docker.io/angoca/db2-install . Downloads from IBM and installs DB2 Exp... [OK]
  6. docker.io docker.io/datagrip/db2 docker-env-db2 [OK]
  7. docker.io docker.io/zongqiang/db2v10.5expc DB2 v10.5.0. Express-C
  8. docker.io docker.io/angoca/db2-sample . DB2 sample database in db2inst1 instanc...
  9. docker.io docker.io/angoca/db2inst1 . DB2 instance (db2inst1) running without... [OK]
  10. docker.io docker.io/ibmoms/db2express-c DB2 Express-C
  11. docker.io docker.io/db260179/guacamole-combined Dockerfile for Guacamole with embedded Mar...
  12. docker.io docker.io/pheasanthunters/db2express-c IBM DB2 Express-C
  13. docker.io docker.io/cwds/db2 This is a Docker image with DB2 Express-C ...
  14. docker.io docker.io/henriquemoreno/db2express-c IBM db2express-c
  15. docker.io docker.io/hmlandregistry/db2_developer_c Mirror of DB2 developer. No other changes.
  16. docker.io docker.io/ignatov/db2 db2 [OK]
  17. docker.io docker.io/taskana/db2 Preconfigured db2 database(s) for taskana
  18. docker.io docker.io/butler54/db2-update DB2 update test
  19. docker.io docker.io/cuball0/db2express-server db2express-server [OK]
  20. docker.io docker.io/db2eventstore/icp-dev-jupyter
  21. docker.io docker.io/eewswee/db2 DB2 lab
  22. docker.io docker.io/hreeinfodb/db2 db2
  23. docker.io docker.io/ibmcom/db2-amd64 Db2 - The AI Database
  24. docker.io docker.io/ibmcom/db2u.instdb
  25. docker.io docker.io/ibmcom/db2u.tools
  26. docker.io docker.io/maketechnology/db2 DB2 express with sample data [OK]
  27. docker.io docker.io/rodrigotsuru/db2-docker DB2 Docker build [OK]

docker-hub上拉取镜像到本地

# docker pull ibmcom/db2express-c

  1. [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

  1. [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

  1. [root@docker-servers ~]# docker run -it --network=host -p50000: -e DB2INST1_PASSWORD=db2root-pwd -e LICENSE=accept docker.io/ibmcom/db2express-c:latest bash
  2. Changing password for user db2inst1.
  3. 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

  1. [root@docker-servers /]# su - db2inst1
  2. Last login: Wed May :: UTC
  3. [db2inst1@docker-servers ~]$

启动实例

$ db2start

  1. [db2inst1@docker-servers ~]$ db2start
  2. 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 -

  1. [db2inst1@docker-servers ~]$ db2pd -
  2.  
  3. Database Member -- Active -- Up days :: -- Date ---03.42.49.332209

查看已经创建的数据库

$ db2 list dbdirectory

说明目前没有创建数据库

  1. [db2inst1@docker-servers ~]$ db2 list dbdirectory
  2. SQL0104N An unexpected token "dbdirectory" was found following "LIST".
  3. Expected tokens may include: "ACTIVE". SQLSTATE=

查看数据库和补丁版本

$ db2level

  1. [db2inst1@docker-servers ~]$ db2level
  2. DB21085I This instance or install (instance name, where applicable:
  3. "db2inst1") uses "" bits and DB2 code release "SQL10055" with level
  4. identifier "0606010E".
  5. Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
  6. "".
  7. Product is installed at "/home/db2inst1/sqllib".

显示运行的Db2容器信息,在宿主机上运行

# docker ps | grep db2

  1. [root@docker-servers ~]# docker ps | grep db2
  2. 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

  1. [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
  2. Changing password for user db2inst1.
  3. New password: BAD PASSWORD: The password contains the user name in some form
  4. Retype new password: passwd: all authentication tokens updated successfully.

查看挂载

# df -h

  1. [root@docker-servers /]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. rootfs 560G 64G 497G % /
  4. overlay 560G 64G 497G % /
  5. tmpfs 12G 12G % /dev
  6. tmpfs 12G 12G % /sys/fs/cgroup
  7. /dev/mapper/centos-home 200G 20G 181G 10% /db2data
  8. /dev/mapper/centos-root 560G 64G 497G % /etc/hosts
  9. shm 64M 64M % /dev/shm
  10. tmpfs 12G 12G % /proc/acpi
  11. tmpfs 12G 12G % /proc/kcore
  12. tmpfs 12G 12G % /proc/keys
  13. tmpfs 12G 12G % /proc/timer_list
  14. tmpfs 12G 12G % /proc/timer_stats
  15. tmpfs 12G 12G % /proc/sched_debug
  16. tmpfs 12G 12G % /proc/scsi
  17. tmpfs 12G 12G % /sys/firmware

设置目录权限,其中db2data为表空间的目录、log为日志目录、dbpath为创建数据库时的dbpath。

  1. [root@docker-servers /]# ls
  2. 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
  3. [root@docker-servers /]#
  4. [root@docker-servers /]# chmod db2data
  5. [root@docker-servers /]#
  6. [root@docker-servers /]# su - db2inst1
  7. Last login: Wed May :: UTC
  8. [db2inst1@docker-servers ~]$
  9. [db2inst1@docker-servers ~]$ cd /db2data
  10. [db2inst1@docker-servers db2data]$
  11. [db2inst1@docker-servers db2data]$ ls
  12. [db2inst1@docker-servers db2data]$
  13. [db2inst1@docker-servers db2data]$ mkdir data
  14. [db2inst1@docker-servers db2data]$
  15. [db2inst1@docker-servers db2data]$ mkdir dbpath
  16. [db2inst1@docker-servers db2data]$
  17. [db2inst1@docker-servers db2data]$ mkdir log
  18. [db2inst1@docker-servers db2data]$
  19. [db2inst1@docker-servers db2data]$ pwd
  20. /db2data
  21. [db2inst1@docker-servers db2data]$
  22. [db2inst1@docker-servers db2data]$ ls
  23. data dbpath log
  24. [db2inst1@docker-servers db2data]$
  25. [db2inst1@docker-servers db2data]$ ls -lrt
  26. total
  27. drwxrwxr-x db2inst1 db2inst1 Dec : data
  28. drwxrwxr-x db2inst1 db2inst1 Dec : dbpath
  29. drwxrwxr-x db2inst1 db2inst1 Dec : log

查看缺省的dbpath

$ db2 get dbm cfg | grep -i dbpath

  1. [db2inst1@docker-servers db2data]$ db2 get dbm cfg | grep -i dbpath
  2. Default database path (DFTDBPATH) = /home/db2inst1

创建用户数据库mydb

$ db2 "create db mydb on /db2data/data dbpath on /db2data/dbpath using codeset utf-8 territory cn"

  1. [db2inst1@docker-servers db2data]$ db2start
  2. 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.
  3. [db2inst1@docker-servers db2data]$
  4. [db2inst1@docker-servers db2data]$ db2 "create db mydb on /db2data/data dbpath on /db2data/dbpath using codeset utf-8 territory cn"
  5. DB20000I The CREATE DATABASE command completed successfully.

修改日志路径

$ db2 update db cfg for mydb using newlogpath /db2data/log

  1. [db2inst1@docker-servers db2data]$ db2 update db cfg for mydb using newlogpath /db2data/log
  2. DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

激活数据库

$ db2 activate db mydb

  1. [db2inst1@docker-servers db2data]$ db2 activate db mydb
  2. DB20000I The ACTIVATE DATABASE command completed successfully.

确认日志生效

  1. [db2inst1@docker-servers db2data]$ cd /db2data/log
  2. [db2inst1@docker-servers log]$
  3. [db2inst1@docker-servers log]$ ls
  4. NODE0000
  5. [db2inst1@docker-servers log]$ cd *
  6. [db2inst1@docker-servers NODE0000]$
  7. [db2inst1@docker-servers NODE0000]$ ls
  8. LOGSTREAM0000
  9. [db2inst1@docker-servers NODE0000]$
  10. [db2inst1@docker-servers NODE0000]$ cd *
  11. [db2inst1@docker-servers LOGSTREAM0000]$
  12. [db2inst1@docker-servers LOGSTREAM0000]$ ls
  13. S0000000.LOG S0000001.LOG S0000002.LOG SQLLPATH.TAG
  14. [db2inst1@docker-servers LOGSTREAM0000]$
  15. [db2inst1@docker-servers LOGSTREAM0000]$ ls -lrt
  16. total
  17. -rw------- db2inst1 db2inst1 Dec : SQLLPATH.TAG
  18. -rw------- db2inst1 db2inst1 Dec : S0000000.LOG
  19. -rw------- db2inst1 db2inst1 Dec : S0000001.LOG
  20. -rw------- db2inst1 db2inst1 Dec : S0000002.LOG
  21. [db2inst1@docker-servers LOGSTREAM0000]$
  22. [db2inst1@docker-servers LOGSTREAM0000]$ db2 get db cfg for mydb | grep -i primary
  23. Number of primary log files (LOGPRIMARY) =
  24. Percent max primary log space by transaction (MAX_LOG) =

由于容器是静态的,所以每次重启容器之后都需要做catalog,否则无法访问数据库。

$ db2 catalog db mydb as mydb on /db2data/dbpath

$ db2 connect to mydb

  1. [db2inst1@docker-servers LOGSTREAM0000]$ db2 catalog db mydb as mydb on /db2data/dbpath
  2. SQL1005N The database alias "mydb" already exists in either the local
  3. database directory or system database directory.
  4. [db2inst1@docker-servers LOGSTREAM0000]$
  5. [db2inst1@docker-servers LOGSTREAM0000]$ db2 connect to mydb
  6.  
  7. Database Connection Information
  8.  
  9. Database server = DB2/LINUXX8664 10.5.
  10. SQL authorization ID = DB2INST1
  11. Local database alias = MYDB

现在,可以提交修改到容器

# docker ps -a

# docker commit bee1d5a3d26f ibmcom/db2express-c-new

  1. [root@docker-servers ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. bee1d5a3d26f ibmcom/db2express-c:latest "/entrypoint.sh bash" minutes ago Exited () seconds ago epic_cray
  4. [root@docker-servers ~]# docker commit bee1d5a3d26f ibmcom/db2express-c-new
  5. sha256:dabb4f81f8f0e62ad2da99520fe22412499792bd67f538e287c2d426914cbfd9

# docker images | grep db2

  1. [root@docker-servers ~]# docker images | grep db2
  2. ibmcom/db2express-c-new latest dabb4f81f8f0 minutes ago 1.71 GB
  3. 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

  1. [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
  2. Changing password for user db2inst1.
  3. New password: BAD PASSWORD: The password contains the user name in some form
  4. Retype new password: passwd: all authentication tokens updated successfully.

切换到db2inst1用户

# su - db2inst1

  1. [root@docker-servers /]# su - db2inst1
  2. Last login: Wed Dec :: UTC on console

启动db2

$ db2start

  1. [db2inst1@docker-servers ~]$ db2start
  2. 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

  1. [db2inst1@docker-servers ~]$ db2 connect to mydb
  2.  
  3. Database Connection Information
  4.  
  5. Database server = DB2/LINUXX8664 10.5.
  6. SQL authorization ID = DB2INST1
  7. Local database alias = MYDB

查看有哪些数据库

$ db2 list db directory

  1. [db2inst1@docker-servers ~]$ db2 list db directory
  2.  
  3. System Database Directory
  4.  
  5. Number of entries in the directory =
  6.  
  7. Database entry:
  8.  
  9. Database alias = MYDB
  10. Database name = MYDB
  11. Local database directory = /db2data/dbpath
  12. Database release level = 10.00
  13. Comment =
  14. Directory entry type = Indirect
  15. Catalog database partition number =
  16. Alternate server hostname =
  17. Alternate server port number =

查看有哪些用户表

$ db2 list tables

  1. [db2inst1@docker-servers ~]$ db2 list tables
  2.  
  3. Table/View Schema Type Creation time
  4. ------------------------------- --------------- ----- --------------------------
  5.  
  6. record(s) selected.

查看表结构

$ db2 describe table table_name

取前n行数据

$ db2 select * from table_name fetch first nrows only

显示数据库版本

$ db2level

  1. [db2inst1@docker-servers ~]$ db2level
  2. DB21085I This instance or install (instance name, where applicable:
  3. "db2inst1") uses "" bits and DB2 code release "SQL10055" with level
  4. identifier "0606010E".
  5. Informational tokens are "DB2 v10.5.0.5", "s141128", "IP23633", and Fix Pack
  6. "".
  7. 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数据库的更多相关文章

  1. windows下安装DB2数据库以及使用Aqua Data Studio链接数据库

    本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之 ...

  2. Docker学习实践 - Docker安装MySql数据库

    Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...

  3. 使用Docker安装Oracle数据库

    在很多时候,我们需要在本地安装Oracle数据库,但是整个安装的过程时间非常长而且安装文件大,那么有不有更好的办法来安装Oracle数据库既能减少安装的时间而且还能够快速进行部署呢?答案就是使用Doc ...

  4. Windows10 64位安装DB2数据库

    安装前准备 : 系统:Windows10 64位 DB2 v9.5下载地址(迅雷):http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置,并复制记住: 去到解压的 ...

  5. 心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171 最近"全栈数据库"的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖 ...

  6. mac系统用docker安装oracle数据库

    oracle没有mac可用的版本,最好的办法是通过docker安装 一.下载docker 1.通过brew下载 brew cask install docker 2.手动下载(需要vpn) https ...

  7. Docker安装MySQL数据库

    本文翻译自:MySQL Docker Containers:Understanding the basics 1.下载MySQL镜像 docker pull mysql:5.6 如此便可以下载最新的M ...

  8. Docker安装Mysql数据库容器(zz)

    zz自:http://blog.csdn.net/chengxuyuanyonghu/article/details/54380032 1.下载mysql的镜像: sudo docker pull m ...

  9. docker 安装mysql数据库 <二>

    一.下载mysql数据库 #网易镜像中心https://c.163.com/hub#/m/home/ #采用网易加速地址,不加速时下载非常的慢 docker pull hub.c..com/libra ...

随机推荐

  1. 内置3D对象-Unity3D游戏开发培训

    内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...

  2. numpy 数组的计算

    一.数组和数的计算 数组和数计算,数组中的每个元素和数进行计算 1.加 import numpy as np arr1 = np.arange(12).reshape(3, 4) print(arr1 ...

  3. python 栈

    栈的特点:先进后出 class Stack: def __init__(self): self.data = [] def push(self, val): self.data.append(val) ...

  4. Linux安装python和更新pip

    一.安装python 1.安装依赖包 1).安装gcc 通过gcc --version 查看,若没有则安装gcc yum -y install gcc 2).安装其他依赖包 yum -y instal ...

  5. Linux中两个重要的基础服务

    本文服务器基于centos7,客户端Windows10 FTP FTP(File Transfer Protocol),文件传输协议,是一个比较古老的基于TCP,用于不同计算机间传递文件的协议. 安装 ...

  6. 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi

    Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL     严重: Error config ...

  7. 关于selenium无法在chrome中自动播放flash的问题

    最近用selenium写个小脚本,遇到flash不能自动播放问题 我遇到的情况,直接提示 请确认是否安装flash,其实已经安装,点击下载flash,然后提示是否允许. 整了好久,发现终极方法: ## ...

  8. Windows10 java环境配置

    1.下载 JDK 下载地址:https ://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 点击下载按钮 ...

  9. QEMU和KVM的关系

    首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器).在支持VMX(Virtual Machin ...

  10. 工具之awk

    转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html awk是一个强大的文本分析工具,相对于grep的查找,sed的编 ...