oracle11在docker环境下的运行

目的

Ø 在测试的环境下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

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

 

时间: 2024-09-27 11:52:35

oracle11在docker环境下的运行的相关文章

请教使用.net2008编写的aspx和cs文件,放在.net2003的环境下能运行吗?

问题描述 请各位指点? 解决方案 解决方案二:不能高版本生成的文件低版本不能用不过低版本的文件高版本的可以用解决方案三:版本问题,应该不可以解决方案四:不能......解决方案五:啊...那有没有"能"的方法呢?解决方案六:不能直接运行假如是一个项目的话建议安装VS2008就是了:是几个文件的话慢慢调试就是了解决方案七:那你只能把代码复制过来自己再改改在VS2003创建相同名字的aspx和aspx.cs自己琢磨着改了呗解决方案八:为什么不能,假设我用VS2008写的时候选的是.net2

Winsock控件在VS2010 C# X64环境下无法运行

问题描述 哪位大神可有关于TCP通信的控件,PC当客户端,像服务器发送数据,等待接收数据即可发送我邮箱103987767@qq.com非常感谢! 解决方案 解决方案二:这个控件在X64下不能用解决方案三:c#怎么会想到用这个控件?有这么多现成的Socket通信的资源,你是vb选手然后有工程不得不用c#吗?建议放弃这个想法.解决方案四:你有资源吗,我不是很会用socket解决方案五:socket通讯的资源网上多得很,通讯的基础,基本上编程都绕不开的,楼主不如趁此机会好好尝试编一下.解决方案六:引用

云计算环境下的Windows7

微软雅黑,sans-serif; font-size:10.5pt">如果企业急于升级到Windows 7,那么兼容性会是顺利部署系统中至关重要的问题.但是,操作系统的测试需要额外的硬件和IT人员的参与,因此这回是一个耗时又耗力的事情. 然而,由于处于Windows的升级周期,通过部署新系统,IT人员因此有了新的选择,也能够节省一部分的时间和金钱. 就目前来说,使用虚拟化软件来测试Windows 7能够加快进程,并节省成本.许多IT集团为此使用了内部测试和开发实验室,并利用虚拟服务器和VM

LNAMP环境下正确的设置网站文件权限详解

LNAMP环境下控制运行权限有三种方式. 第一种,只取消掉指定目录(如上传目录)的运行权限 这种方式,只能说,有比没有要好些. 第二种,只允许指定文件和目录有运行权限适合少量需要运行PHP程序的网站,比如生成静态的CMS程序. 第三种,利用x权限位进行限制,设置稍复杂些. 在LNAMP环境中,一般使用下面的代码把PHP请求传递给Apache: location / {     try_files $uri @apache; } location @apache {     internal;  

云环境下测Win 7 加速不止是一点点

本文讲的是云环境下测Win 7 加速不止是一点点,[IT168 云计算频道]假如企业急于升级到Windows7,测试应用程序的兼容性是顺利部署系统中至关重要的环节.但众所周知,操作系统的测试需要额外的硬件和IT人员的参与,因此是一个耗费时间和资源的事情. 但是,由于处于Windows的升级周期,IT人员便有了新的选择,也使得他们可以通过部署新系统,以节省时间和金钱. 在当前的情况下,使用虚拟化软件来测试Windows7能够加快进程,并节省成本.许多IT集团为此使用了内部测试和开发实验室,并利用虚

使用Docker搭建Java Web运行环境

一.Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发, 源代码托管在 Github 上, 遵从Apache2.0协议开源.Docker的目标是实现轻量级的操作系统虚拟化解决方案. 学习Docker首先要了解几个概念: 镜像-Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息: 容器-容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,Docker运行在"Docker"上: 仓库

Riddler助力Docker容器为runC运行环境做准备

本文讲的是Riddler助力Docker容器为runC运行环境做准备[编者的话]本文主要是介绍Riddler工具,讲解Riddler为开发者带来的便利,并对基本使用进行了介绍和解释. 这是一个关于标准化带来的优势的故事,同时介绍如何利用Riddler转换一个Docker容器为runC镜像.Riddler由容器开发者Jess Frazelle研发. Phil Estes 是IBM开放云技术的高级技术经理,他将在本周多伦多的LinuxCon会议上介绍Riddler的性能. 运行,运行,运行! 回顾开

讲解使用Docker搭建Java Web运行环境_docker

Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了.作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器.镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结. 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们

详解使用Docker搭建Java Web运行环境_docker

这周末体验了一下挺火的Docker技术,记录学习笔记. >Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发, 源代码托管在 Github 上, 遵从Apache2.0协议开源.Docker的目标是实现轻量级的操作系统虚拟化解决方案. 学习Docker首先要了解几个概念: 镜像-Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息: 容器-容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,