使用Docker安装Oracle 12c

使用Docker安装Oracle 12c

假设你的服务器已成功安装Docker,继续进行以下操作:

1. 启动Docker

[root@node01 ~]# service docker start

2. 从远程仓库搜索oracle image

[root@node01 ~]# 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       457                  [OK]
docker.io   docker.io/oraclelinux                      Oracle Linux is an open-source operating s...   347       [OK]
docker.io   docker.io/alexeiled/docker-oracle-xe-11g   This is a working (hopefully) Oracle XE 11...   208                  [OK]
docker.io   docker.io/sath89/oracle-12c                Oracle Standard Edition 12c Release 1 with...   141                  [OK]
docker.io   docker.io/sath89/oracle-xe-11g             Oracle xe 11g with database files mount su...   99                   [OK]
docker.io   docker.io/isuper/java-oracle               This repository contains all java releases...   56                   [OK]
docker.io   docker.io/jaspeen/oracle-11g               Docker image for Oracle 11g database            39                   [OK]
docker.io   docker.io/oracle/oraclelinux               Oracle Linux is an open-source operating s...   37                   [OK]
docker.io   docker.io/ingensi/oracle-jdk               Official Oracle JDK installed on centos.        20                   [OK]
docker.io   docker.io/oracle/openjdk                   Docker images containing OpenJDK Oracle Linux   20                   [OK]
docker.io   docker.io/cogniteev/oracle-java            Oracle JDK 6, 7, 8, and 9 based on Ubuntu ...   19                   [OK]
docker.io   docker.io/airdock/oracle-jdk               Docker Image for Oracle Java SDK (8 and 7)...   18                   [OK]
docker.io   docker.io/oracle/glassfish                 GlassFish Java EE Application Server on Or...   15                   [OK]
docker.io   docker.io/n3ziniuka5/ubuntu-oracle-jdk     Ubuntu with Oracle JDK. Check tags for ver...   13                   [OK]
docker.io   docker.io/oracle/nosql                     Oracle NoSQL on a Docker Image with Oracle...   10                   [OK]
docker.io   docker.io/andreptb/oracle-java             Debian Jessie based image with Oracle JDK ...   8                    [OK]
docker.io   docker.io/infogene/oracle                  Image for running Oracle Database 11g Stan...   6                    [OK]
docker.io   docker.io/openweb/oracle-tomcat            A fork off of Official tomcat image with O...   5                    [OK]
docker.io   docker.io/flurdy/oracle-java7              Base image containing Oracle's Java 7 JDK       4                    [OK]
docker.io   docker.io/davidcaste/debian-oracle-java    Oracle Java 8 (and 7) over Debian Jessie        3                    [OK]
docker.io   docker.io/jtech/oracle-jdk                 A Docker image based on the smallest Linux...   3                    [OK]
docker.io   docker.io/sgrio/java-oracle                Docker images of Java 7/8 provided by Orac...   3                    [OK]
docker.io   docker.io/clincase/oracle                  clincase oracle db server image                 1                    [OK]
docker.io   docker.io/publicisworldwide/oracle-core    This is the core image based on Oracle Lin...   1                    [OK]
docker.io   docker.io/expertsystems/oracle-jdk8        CentOS based base image with Oracle JDK 8       0                    [OK]

远程仓库中有很多oracle image,本次我们选择Oracle-12c

3. 从远程仓库获取oracle-12c image

[root@node01 ~]# docker pull sath89/oracle-12c
Using default tag: latest
Trying to pull repository docker.io/sath89/oracle-12c ...
latest: Pulling from docker.io/sath89/oracle-12c

863735b9fd15: Pull complete
4fbaa2f403df: Pull complete
44be94a95984: Pull complete
a3ed95caeb02: Pull complete
b8bc6e8767ee: Pull complete
c918da326197: Pull complete
448e1619a038: Pull complete
faadd00cf98e: Pull complete
48a252b66251: Pull complete
0be1ba285f23: Pull complete
Digest: sha256:0d075905ca2243f0c60397e49eaae6edd62afcce43528df77768f346ece7c49b

4. 查看下载好的image

[root@node01 ~]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/sath89/oracle-12c   latest              7508a4d8d54f        13 days ago         5.703 GB

docker images : 列出本地镜像。

5. 使用刚刚下载下来的oracle 12c image创建一个container,并运行其中的oracle数据库。命令执行成功会返回一个container id

[root@node01 ~]# docker run -d -p 9090:8080 -p 1521:1521 -v /mnt/bd/data/oracle:/u01/app/oracle sath89/oracle-12c
c5a4400ae7d2586c3bec039685e1a8046c998cb2223bef7b3c71b01f2fa1204e

docker run :创建一个新的容器并运行一个命令。-d: 后台运行容器,并返回容器ID;-p:主机与容器的端口映射(主机ip:容器ip);-v:主机与容器的目录映射。

6. 查看container日志

[root@node01 ~]# docker logs -f c5a4400ae7d2586c3bec039685e1a8046c998cb2223bef7b3c71b01f2fa1204e
Database not initialized. Initializing database.
Starting tnslsnr
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% 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/*
[IMPORT] /entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
Import finished
Database ready to use. Enjoy! ;)

7. 查看container状态

[root@node01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
c5a4400ae7d2        sath89/oracle-12c   "/entrypoint.sh "   9 minutes ago       Up 9 minutes        0.0.0.0:1521->1521/tcp, 0.0.0.0:9090->8080/tcp   silly_thompson

8.进入刚刚创建的container中

[root@node01 ~]# docker exec -it c5a4400ae7d2 /bin/bash
root@c5a4400ae7d2:/# su oracle
oracle@c5a4400ae7d2:/$ $ORACLE_HOME/bin/sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 19 10:26:59 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> conn system/oracle as sysdba;
Connected.

docker exec :在运行的容器中执行命令。-i :即使没有附加也保持STDIN 打开;-t :分配一个伪终端。

9.Connect database with following setting:

hostname: localhost
port: 1521
sid: xe
service name: xe.oracle.docker
username: system
password: oracle

10.更多安装选项和说明请参考 Docker Hub中该镜像描述

转载于:https://my.oschina.net/u/3446722/blog/983745

你可能感兴趣的:(使用Docker安装Oracle 12c)