oracle11在docker环境下的运行

简介: 目的 Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来 Ø 开发时方便测试之用 可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下: rpm -ivh --nodeps --force *.

目的

Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来

Ø 开发时方便测试之用

可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下:

rpm -ivh --nodeps --force *.rpm

systemctl enable docker.service

service docker restart

 

我们提供了11g的2个版本

Ø Express:这是内存消耗较少,速度快

Ø 企业版:完整的企业版本

根据情况选择使用

场景

在我们的centos7机器上或客户类似环境的机器上[只要安装了docker均可],直接运行这些服务

前提条件

修改/etc/selinux/config文件,设置为disable

#     disabled - No SELinux policy is loaded.

SELINUX=disable

重启机器

[这个很关键,多次的实验表明如果不设置这个,pull下来的容器启动后没有oracle实例,尝试了多次的教训]

Oracle Express 11版本

这个使用的是dockerfile文件进行安装出来的

https://github.com/wnameless/docker-oracle-xe-11g 其中基于ubuntu16的版本有问题,获取的是ubuntu14的分支

还原镜像

Ø 还原系统Ubuntu

首先还原出来一个ubuntu14的镜像

#docker load < ubuntu_14.04.4.tar

Ø 还原oracle express

n 解压docker 文件: tar -xvzf docker-oracle-xe-11g.tar.gz -C /root/.

n cd /root/docker-oracle-xe-11g ; docker build -t oracle_xe11g .

如下就是恢复出来的系统

[root@demo docker-oracle-xe-11g]# docker images

REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE

oracle_xe11g                                                    latest              3d2fb0c62e4d        38 minutes ago      2.251 GB

docker.io/ubuntu                                       14.04.4             0ccb13bf1954        11 months ago       187.9 MB

运行

Ø 第一次运行

docker run -d -P -p 1521:1521 --name xe oracle_xe11g

运行后可以查看系统的情况

[root@demo docker-oracle-xe-11g]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                                                                    NAMES

130510c450e8        oracle_xe11g                 "/bin/sh -c '/usr/sbi"   41 minutes ago      Up 2 seconds                 0.0.0.0:1521->1521/tcp, 0.0.0.0:32778->22/tcp, 0.0.0.0:32777->8080/tcp xe

Ø 后续运行

在该机器上运行时,可以使用以下的简化命令

docker stop xe 停止容器

docker start xe 启动容器

Ø 进入容器的SHELL

执行结果类似如下[必须有这些守护进程才可用]

[root@demo docker-oracle-xe-11g]# docker exec -it xe bash

root@130510c450e8:/# ps ax

  PID TTY      STAT   TIME COMMAND

    1 ?        Ss     0:00 /bin/sh -c /usr/sbin/startup.sh && /usr/sbin/sshd -D

   22 ?        Ssl    0:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit

   36 ?        Ss     0:00 xe_pmon_XE

   38 ?        Ss     0:00 xe_psp0_XE

   40 ?        Ss     0:00 xe_vktm_XE

   44 ?        Ss     0:00 xe_gen0_XE

   46 ?        Ss     0:00 xe_diag_XE

   48 ?        Ss     0:00 xe_dbrm_XE

   50 ?        Ss     0:00 xe_dia0_XE

   52 ?        Ss     0:00 xe_mman_XE

   54 ?        Ss     0:00 xe_dbw0_XE

   56 ?        Ss     0:00 xe_lgwr_XE

   58 ?        Ss     0:00 xe_ckpt_XE

   60 ?        Ss     0:00 xe_smon_XE

   62 ?        Ss     0:00 xe_reco_XE

   64 ?        Ss     0:00 xe_mmon_XE

   66 ?        Ss     0:00 xe_mmnl_XE

   68 ?        Ss     0:00 xe_d000_XE

   70 ?        Ss     0:00 xe_s000_XE

   72 ?        Ss     0:00 xe_s001_XE

   74 ?        Ss     0:00 xe_s002_XE

   76 ?        Ss     0:00 xe_s003_XE

   84 ?        Ss     0:00 xe_vkrm_XE

   86 ?        Ss     0:00 xe_qmnc_XE

   88 ?        S      0:00 /usr/sbin/sshd -D

  102 ?        Ss     0:00 xe_cjq0_XE

  112 ?        Ss     0:00 xe_q000_XE

  114 ?        Ss     0:00 xe_q001_XE

  116 ?        Ss     0:00 xe_j000_XE

  118 ?        Ss     0:00 xe_j001_XE

  119 ?        Ss     0:00 bash

  132 ?        R+     0:00 ps ax

root@130510c450e8:/#

Ø 数据库账号

n sys/oralce

n system/oracle

n SID: xe

wpsC460.tmp

Oracle 11g版本

#docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

已经把这个存为了helowin_oracel11g.tar

还原镜像

#docker load < helowin_oracel11g.tar

可以看到类似如下:

[root@demo docker-oracle-xe-11g]# docker images

REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE

registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest              3fa112fd3642        17 months ago       6.849 GB

运行

Ø 第一次运行

docker run -d -P --name 11g 3fa

运行后可以查看系统的情况

[root@demo docker-oracle-xe-11g]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                    NAMES

53b4ba87ef34        3fa                 "/bin/sh -c '/home/or"   About an hour ago   Up 6 seconds        0.0.0.0:32776->1521/tcp                                                  11g

Ø 后续运行

在该机器上运行时,可以使用以下的简化命令

docker stop 11g 停止容器

docker start 11g 启动容器

Ø 进入容器的SHELL

执行结果类似如下[必须有这些守护进程才可用]

[root@demo docker-oracle-xe-11g]# docker exec -it 11g bash

[oracle@53b4ba87ef34 /]$ ps ax

  PID TTY      STAT   TIME COMMAND

    1 ?        Ss     0:00 /bin/sh -c /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/dbstart /home/oracle/app/oracle/product/11.2.0/dbhome_2 && tail -f /home/oracle/app

   18 ?        Ssl    0:00 /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/tnslsnr LISTENER -inherit

   57 ?        Ss     0:00 ora_pmon_helowin

   59 ?        Ss     0:00 ora_vktm_helowin

   63 ?        Ss     0:00 ora_gen0_helowin

   65 ?        Ss     0:00 ora_diag_helowin

   67 ?        Ss     0:00 ora_dbrm_helowin

   69 ?        Ss     0:00 ora_psp0_helowin

   71 ?        Ss     0:00 ora_dia0_helowin

   73 ?        Ss     0:00 ora_mman_helowin

   75 ?        Ss     0:00 ora_dbw0_helowin

   77 ?        Ss     0:00 ora_lgwr_helowin

   79 ?        Ss     0:00 ora_ckpt_helowin

   81 ?        Ss     0:00 ora_smon_helowin

   83 ?        Ss     0:00 ora_reco_helowin

   85 ?        Ss     0:00 ora_mmon_helowin

   87 ?        Ss     0:00 ora_mmnl_helowin

   89 ?        Ss     0:00 ora_d000_helowin

   91 ?        Ss     0:00 ora_s000_helowin

   99 ?        Ss     0:00 ora_p000_helowin

  101 ?        Ss     0:00 ora_p001_helowin

  105 ?        Ss     0:00 ora_qmnc_helowin

  122 ?        S      0:00 tail -f /home/oracle/app/oracle/product/11.2.0/dbhome_2/startup.log

  136 ?        Ss     0:00 ora_cjq0_helowin

  148 ?        Ss     0:00 ora_q000_helowin

  150 ?        Ss     0:00 ora_q001_helowin

  152 ?        Ss     0:00 ora_j000_helowin

  154 ?        Ss     0:00 ora_j001_helowin

  155 ?        Ss     0:00 bash

  168 ?        R+     0:00 ps ax

[oracle@53b4ba87ef34 /]$

在此Shell下执行如下的语句

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$PATH:$ORACLE_HOME/bin

sqlplus / as sysdba

alter user system identified by oracle;

alter user sys identified by oracle;

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

LINUX账号: root helowin

Ø 数据库账号

n sys/oralce

n system/oracle

n SID: helowin

wpsC471.tmp

 

相关文章
|
17天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
17天前
|
虚拟化 Docker Windows
window 10专业版部署docker环境
本文介绍了如何在Windows 10专业版上部署Docker环境,包括安装步骤、配置镜像加速以及可能遇到的错误处理。
41 2
window 10专业版部署docker环境
|
18天前
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
44 1
|
1月前
|
Kubernetes Shell 测试技术
在Docker中,可以在一个容器中同时运行多个应用进程吗?
在Docker中,可以在一个容器中同时运行多个应用进程吗?
|
1月前
|
Shell Docker 容器
在Docker中,如何停止所有正在运行的容器?
在Docker中,如何停止所有正在运行的容器?
|
1月前
|
Linux 数据库 数据安全/隐私保护
|
1月前
|
前端开发 PHP 开发者
React Server Component 使用问题之怎么使用Docker运行PHP应用
React Server Component 使用问题之怎么使用Docker运行PHP应用
|
1月前
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
64 1
|
12天前
|
关系型数据库 数据库 网络虚拟化
Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例
由于时间和空间限制,我将在后续的回答中分别涉及到“Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦”以及“Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例”。如果你有任何一个问题的优先顺序或需要立即回答的,请告知。
22 0
|
19天前
|
Ubuntu Linux 编译器
通过qemu和docker搭建交叉编译环境
通过qemu和docker搭建交叉编译环境