xlfm22 发表于 2018-5-28 09:33:53

利用Docker快速部署Oracle环境

  工作中需要频繁使用Oracle环境,但是每次搭建起来比较消耗时间,本想通过虚拟机模板的方式来快速安装oracle vm,但是每次改ip等环境也很耗时,因此想到docker中有没有已经做好的images,这样就能快速获得Oracle环境。
  root@- rac1:docker search oracle
  INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  docker.io docker.io/wnameless/oracle-xe-11g Oracle Express 11g R2 on Ubuntu 16.04 LTS 417
  docker.io docker.io/oraclelinux Oracle Linux is an open-source operating s... 304
  docker.io docker.io/alexeiled/docker-oracle-xe-11g This is a working (hopefully) Oracle XE 11... 203
  docker.io docker.io/sath89/oracle-12c Oracle Standard Edition 12c Release 1 with... 112
  docker.io docker.io/sath89/oracle-xe-11g Oracle xe 11g with database files mount su... 91
  docker.io docker.io/isuper/java-oracle This repository contains all java releases... 52
  docker.io docker.io/jaspeen/oracle-11g Docker image for Oracle 11g database 38
  docker.io docker.io/oracle/oraclelinux Oracle Linux is an open-source operating s... 34
  docker.io docker.io/ingensi/oracle-jdk Official Oracle JDK installed on centos. 20
  docker.io docker.io/airdock/oracle-jdk Docker Image for Oracle Java SDK (8 and 7)... 16
  docker.io docker.io/oracle/openjdk Docker images containing OpenJDK Oracle Linux 15
  docker.io docker.io/cogniteev/oracle-java Oracle JDK 6, 7, 8, and 9 based on Ubuntu ... 12
  docker.io docker.io/n3ziniuka5/ubuntu-oracle-jdk Ubuntu with Oracle JDK. Check tags for ver... 12
  docker.io docker.io/andreptb/oracle-java Debian Jessie based image with Oracle JDK ... 8
  docker.io docker.io/oracle/glassfish GlassFish Java EE Application Server on Or... 8
  docker.io docker.io/oracle/nosql Oracle NoSQL on a Docker Image with Oracle... 7
  docker.io docker.io/infogene/oracle Image for running Oracle Database 11g Stan... 6
  docker.io docker.io/openweb/oracle-tomcat A fork off of Official tomcat image with O... 5
  docker.io docker.io/flurdy/oracle-java7 Base image containing Oracle's Java 7 JDK 4
  docker.io docker.io/jtech/oracle-jdk A Docker image based on the smallest Linux... 3
  docker.io docker.io/davidcaste/debian-oracle-java Oracle Java 8 (and 7) over Debian Jessie 2
  docker.io docker.io/kaluzki/oracle kaluzki/oracle 2
  docker.io docker.io/clincase/oracle clincase oracle db server image 1
  docker.io docker.io/jckrz/debian-oracle-jdk Vanilla Debian + Oracle JDK 1
  docker.io docker.io/publicisworldwide/oracle-core This is the core image based on Oracle Lin... 1
  可以看到有很多版本,11g,12c
  
  这里选择获取12c版本
  root@- rac1:/home/# docker pull sath89/oracle-12c
  Using default tag: latest
  latest: Pulling from sath89/oracle-12c
  863735b9fd15: Pull complete
  4fbaa2f403df: Pull complete
  faadd00cf98e: Downloading [=======>                                           ] 394.8 MB/2.768 GB
  829e2e754405: Download complete
  
  root@- rac1:/home/# docker images
  REPOSITORY TAG IMAGE ID CREATED SIZE
  docker.io/sath89/oracle-12c latest b8bf52883bc7 5 weeks ago 5.692 GB
  
  使用刚刚下载下来的12g image创建一个container,并运行其上的oracle数据库
  docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c
  
  # docker logs -f ffbeb07058449672c640ddb4e59b8376dae2e3b4dd54142871da7adbc069ee79
  ls: cannot access /u01/app/oracle/oradata: No such file or directory
  Database not initialized. Initializing database.
  Starting tnslsnr
  Copying database files
  1% complete
  37% complete
  Creating and starting Oracle instance
  40% complete
  45% complete
  62% complete
  Completing Database Creation
  66% complete
  100% complete
  Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details.
  Configuring Apex console
  Database initialized. Please visit http://#containeer:8080/em http://#containeer:8080/apex for extra configuration if needed
  Starting web management console
  PL/SQL procedure successfully completed.
  Starting import from '/docker-entrypoint-initdb.d':
  found file /docker-entrypoint-initdb.d//docker-entrypoint-initdb.d/*
   /entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
  Import finished
  Database ready to use. Enjoy! ;)
  到这里Oracle实例就已经启动好了
  
  可以看到创建的container已经在运行中
  ~$ docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS                                          NAMES
  9e893d773494      sath89/oracle-12c   "/entrypoint.sh "   15 minutes ago      Up 15 minutes       0.0.0.0:1521->1521/tcp, 0.0.0.0:8080->8080/tcp   clever_chandrasekhar
  进入oracle container
  ~$ docker exec -it 9e893d773494 /bin/bash
  
  root@9e893d773494:/# su oracle
  oracle@9e893d773494:~$ $ORACLE_HOME/bin/sqlplus / as sysdba
  SQL*Plus: Release 12.1.0.2.0 Production on Fri Feb 24 03:03:00 2017
  Copyright (c) 1982, 2014, Oracle.All rights reserved.
  SQL>
  Oracle 使用的实例名,用户名,密码如下
  ---------------------------------------------
  hostname: localhost
  port: 1521
  sid: xe
  username: system
  password: oracle
  ---------------------------------------------
  接下来就可以快速使用Oracle12C了
页: [1]
查看完整版本: 利用Docker快速部署Oracle环境