概况:以centos:7.2.1511镜像为基础镜像,使用docker commit方式进行构建
 
步骤:
  1. 运行centos7.2.1511镜像(以特权模式运行,后续内核参数修改必需参数)
    docker run -it --privileged centos:7.2.1511 /bin/bash
        2.拷贝db2安装包进镜像中
    docker cp v9.7_linuxx64_server.tar.gz 容器id:/usr/local
        3.镜像内操作
  • 解压安装包
    tar -xzvf v9.7_linuxx64_server.tar.gz
  • 进入解压后目录server
    cd server
  • 检查安装环境
    ./db2prereqcheck
  • 环境缺失信息
    * WARNING:
    *    The 32 bit library file libstdc++.so.6 is not found on the system.
    *    32-bit applications may be affected.  
    * ERROR:
    *    The required library file libaio.so.1 is not found on the system.
    *    Check the following web site for the up-to-date system requirements
    *    of IBM DB2 9.7
  • 解决方法
    * yum install -y libstdc++
    * yum install -y libstdc++.so.6
    * yum install -y libaio
  • 安装db2
    ./db2_install
 
    要选择另一个目录用于安装吗?[yes/no]
    --输入no默认安装opt下,选择yes自己输入安装目录
    指定下列其中一个关键字以安装 DB2 产品
    --输入ESE
    ESE
    正在初始化 DB2 安装。……
      • 出错点,共48步,安装到第41步或第36步Hangup
          Task #41 start
          Description: Starting DB2 Fault Monitor
          Estimated time 10 second(s)
          Hangup
      • PS:若47步左右出现一个小error可以忽略,不影响
      • 解决方法(修改内核参数):
        • 带--privileged运行容器,然后修改内核参数
          docker run -t -i --net=host -v /db2disk:/db2disk --privileged centos_db2ese_v1.1 /bin/bash
          vi /etc/sysctl.conf
          kernel.shmmni = 65536
          kernel.shmmax = 274877906944
          kernel.shmall = 134217728
          kernel.sem = 250 1024000 32 65536
          kernel.msgmni = 262144
          kernel.msgmax = 65536
          kernel.msgmnb = 65536
          vm.dirty_background_ratio = 5
          vm.dirty_ratio= 10
          vm.overcommit_memory= 0
          vm.swappiness= 0 #如果是redhat,建议设置为5,
          否则很有可能在内存不足时OOM killer可能会杀掉DB2进程
          执行sysctl -p使参数在线生效
          执行ipcs -l查看操作系统内核参数设置
           
          ------ Messages Limits --------
          max queues system wide = 668
          max size of message (bytes) = 8192
          default max size of queue (bytes) = 16384
           
          ------ Shared Memory Limits --------
          max number of segments = 4096
          max seg size (kbytes) = 18014398509465599
          max total shared memory (kbytes) = 18014398442373116
          min seg size (bytes) = 1
           
          ------ Semaphore Limits --------
          max number of arrays = 128
          max semaphores per array = 250
          max semaphores system wide = 32000
          max ops per semop call = 32
          semaphore max value = 32767
           
    • 查看注册信息,若出现试用期则安装成功,若出现
        /opt/ibm/db2/V9.7/adm/db2licm -l
      • 安装 license
        • db2licm -l命令可以查看到db2的license信息。可以找一个永久的license添加到db2数据库即可,把db2ese_c.lic放到一目录下: 
            /opt/ibm/db2/V9.7/license/db2ese_c.lic,在/opt/ibm/db2/V9.7/adm/目录下执行:./db2licm -a /opt/ibm/db2/V9.7/license/db2ese_c.lic
         
  • 创建实例用户
    groupadd -g 901 db2iadm1
    groupadd -g 902 db2fadm1
    groupadd -g 903 dasadm1
    useradd -g db2iadm1 -u 801 -d /home/db2inst1 -m  db2inst1
    useradd -g db2fadm1 -u 802 -d /home/db2fenc1 -m  db2fenc1
    useradd -g dasadm1 -u 803 -d /home/dasadm1 -m  dasusr1
  • 为db2inst1创建密码
    passwd db2inst1
  • 创建实例
    [root@server]#cd /opt/ibm/db2/V9.7/instance
    [root@instance]#./dascrt -u dasusr1 (创建DB2管理服务器)
    [root@instance]#./db2icrt -u db2inst1 db2inst1 (创建DB2实例)
 
  • 启动数据库实例
    [root@localhost instance]# su - db2inst1
    [db2inst1@localhost ~]$ db2start
 
  • 创建一个用于连接的数据库
    [db2inst1@localhost ~]$ db2 create database KHYX_YS using codeset GBK territory CN
 
  • 设置端口
    查看db2是否开启tcp服务
    [root@localhost db2inst1]# db2set –all
    如果没有看到如下内容:DB2COMM=TCPIP,则需要对db2进行设置
    [root@localhost db2inst1]# db2set db2COMM=TCPIP
    查看是否配置db2 Tcp服务名称:
    [root@localhost db2inst1]# db2 get dbm cfg | grep -i SVCENAME
    如果SVCENAME 没有对应的值,则需要设置DB2的TCP服务名称或端口
    [root@localhost db2inst1]# db2 update dbm cfg using svcename db2AppName(自定义名称或端口号)
    查看/etc/services中是否已经将db2的tcp服务添加到系统服务中(端口号不需要这部)
    [root@localhost db2inst1]# cat /etc/services | grep db2
    如果没有找到任何内容或者没有db2AppName相关内容,则需要在services文件中加入db2AppName   50000/tcp,其中50000为 db2 tcp服务的端口号。使用vi     /etc/services命令进入编辑器添加内容,然后ESC键 :wq保存退出编辑器。
    重启db2服务,查看db2 tcp服务监听的端口是否已经启用
    [db2inst1@localhost ~]$ db2 force application all(强制停止数据库)
    [db2inst1@localhost ~]$ db2start
    [db2inst1@localhost ~]$ netstat -na | grep 50000
 
 

Docker打DB2 9.7镜像采坑相关的更多相关文章

  1. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

  2. Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)

    一.前言 有人问,为什么要用Jenkins,在一些中小型企业?我说下我以前开发的痛点,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已 ...

  3. v8环境搭建采坑记录

    项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8:   查看ce ...

  4. Docker 实战—使用 Dockerfile 构建镜像

    Dockerfile 指令详解请访问:https://www.cnblogs.com/cloudfloating/p/11737447.html 使用 Alpine Linux 作为基础镜像 Alpi ...

  5. tomcat采坑

    1. tomcat采坑 1.1. 采坑 今天又踩了个以前踩过的坑,运维系统迁移到docker,使用的tomcat版本是tomcat8,而原来的版本是tomcat7.0.53,导致的结果就是系统间请求一 ...

  6. docker安装db2数据库

    查询可安装的db2镜像 # docker search db2 [root@docker-servers ~]# docker search db2 INDEX NAME DESCRIPTION ST ...

  7. 细数阿里云在使用 Docker 过程中踩过的那些坑

    昨天下午道哥在微信上丢给我一条新闻,看看,我们阿里云支持 Docker 企业版了.我打开一看,果然,阿里云发布了飞天敏捷版,开始支持企业级的 Docker 容器. 美国中部时间4月19日,阿里云在容器 ...

  8. 我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法

    我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法 一.介绍 最近,我在写有关使用 Jenkins 搭建企业级持续集成环境的文章,准备了四台服务器,企业级别嘛,一台就 ...

  9. Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

    @ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...

随机推荐

  1. 【Alpha 冲刺】 2/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成API文档编写 由于外出比赛,故推迟 无 0 孙浩楷 1.完成VUE框架搭建 2.寻找在线编辑图片插件 已完成 WEB在线编辑 ...

  2. JAVA引用的种类

    最近在进行Java项目开发的时候,由于业务的原因,有时候new的对象会比较多,这个时候我总是有一个疑惑?那就是JVM在何时决定回收一个Java对象所占据的内存?这个问题其实对整个web系统来说是一个比 ...

  3. unity3D iTween的使用

     iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出.让你做开发更轻松,用它能够轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等 到官网看看 http://itwe ...

  4. 概率和期望dp

    概率和期望dp 概率和期望好神啊,完全不会. 网上说概率要顺着推,期望要逆着推,然而我目前做的概率期望题正好都与此相反2333   概率: 关于概率:他非常健康 初中概率题非常恐怖.现在来思考一道题: ...

  5. java使用纯命令行打包项目

    1: javac -d 编译之后的class文件输出目录   指定源文件位置即可.例如 对于多个包下面的源码编译,貌似javac不支持迭代编译,可能需要一次传入多个源码位置进行编译.一种便捷方法就是使 ...

  6. 页面中php传值后循环列表js获取点击的id

    页面中php传值后循环列表js获取点击的id值进行js操作 <script type="text/javascript" src="__PUBLIC__/js/jq ...

  7. WorldWind源码剖析系列:地形访问器类TerrainAccessor

    地形访问器类TerrainAccessor 地形访问器类TerrainAccessor提供了对地形(高程)Terrain (elevation)访问的各种接口interface,是NltTerrain ...

  8. UART, SPI, IIC的详解及三者的区别和联系

    UART.SPI.IIC是经常用到的几个数据传输标准,下面分别总结一下: UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基 ...

  9. 大数据入门第二十一天——scala入门(二)并发编程Akka

    一.概述 1.什么是akka Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程序的平台. 更多入门的基 ...

  10. 2017-2018-2 20155230《网络对抗技术》实验1:PC平台逆向破解(5)M

    1.直接修改程序机器指令,改变程序执行流程 2.通过构造输入参数,造成BOF攻击,改变程序执行流 3.注入Shellcode并执行 4.实验感想 注:因为截图是全屏所以右键图片在新的标签页打开观看更加 ...