Docker 安装 Oracle12c

    首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。由于网络原因,我们下载一个Docker官方的镜像需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的可以参考我之前的文章:Docker <一> 架构简介与Linux上安装 https://my.oschina.net/u/3375733/blog/1582281]。

一、Docker 安装 Oracle12c

    1、查看docker仓库中的 oracle 命令


docker search oracle 

    以看到下图所示的信息:

    2、为选定需要pull到系统中的数据库镜像

# docker pull sath89/oracle-12c --------sath89/oracle-12c为选定需要pull到系统中的数据库镜像

docker pull sath89/oracle-12c

    整个pull过程需要花费一些时间,耐心等待。

    若见下图证明pull成功。

二、查看并启动Docker 镜像

    1、列出已下载的镜像

# 使用 docker images 命令即可列出已下载的镜像

docker images

    执行命令后,可看到类似于如下的表格:

    2、列出运行中的容器

# 使用 docker ps 命令即可列出运行中的容器

docker ps

    执行命令后,可看到类似于如下的表格:

    可以发现,目前没有运行的容器。故,接下来我们新建并启动一个 Oracle12c 容器。

三、启动容器,使用 Oracle 12c 数据库

    1、新建并启动容器

# 使用 docker run 命令即可新建并启动一个容器

docker run

     命令语法如下:

# 语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  

# OPTIONS
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 设置环境变量;

--env-file=[]: 从指定文件读入环境变量;

--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口;

     启动方式一:运行打开8080和1521端口:

docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c

    执行命令后,看到如下信息,容器就启动完成了。

   

    查看日志:

docker log -f d9b8cbfa692bc4cfbf4fbbb85bec1990b76c6a7b454ae7bedee0fea21f88af89

   进入容器虚拟终端:

docker exec -it d9b8cbfa692bc4cfbf4fbbb85bec1990b76c6a7b454ae7bedee0fea21f88af89 /bin/bash

    启动方式二:可用下述命令实现容器和数据的有效分离:

docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c

    启动方式三:使用自定义DBCA_TOTAL_MEMORY(以MB为单位)运行:


docker run -d -p 8080:8080 -p 1521:1521 \
 -v /my/oracle/data:/u01/app/oracle -e \
CA_TOTAL_MEMORY=1024 sath89/oracle-12c

   2、连接此镜像的 Oracle Database 12c

    注意使用此镜像创建的oracle用户名和密码为: system / oracle 或者 sys / oracle ;然后我们使用本地的sql工具 JetBrains DataGrip  连接 oracle12c 数据库即可。


# 使用以下设置连接数据库:
hostname: localhost
port: 1521
sid: xe
service name: xe
username: system
password: oracle

    

    使用sqlplus连接:

sqlplus system/oracle@//localhost:1521/xe

    SYS&SYSTEM的密码:

oracle

    使用以下设置连接到Oracle Application Express Web管理控制台:

http://localhost:8080/apex
workspace: INTERNAL
user: ADMIN
password: 0Racle$

    Apex升级到v 5. *

docker run -it --rm --volumes-from ${DB_CONTAINER_NAME} \ 
--link ${DB_CONTAINER_NAME}:oracle-database \
-e PASS=YourSYSPASS sath89/apex install

    使用以下设置连接到Oracle企业管理控制台:

http://localhost:8080/em
user: sys
password: oracle
connect as sysdba: true

    默认情况下,Web管理控制台已启用。禁用添加环境变量:

docker run -d -e WEB_CONSOLE=false -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c
#You can Enable/Disable it on any time

    增加的脚本或转储(清除)初始化:

docker run -d -p 1521:1521 -v \
/my/oracle/data:/u01/app/oracle -v \
/my/oracle/init/SCRIPTSorSQL:/docker-entrypoint-initdb.d sath89/oracle-12c

    默认情况下,docker-entrypoint-initdb.d只有在初始化数据库(第一次运行)时才启用导入 。

    要自定义转储导入使用IMPDP_OPTIONS 环境变量就像-e  IMPDP_OPTION="REMAP_TABLESPACE=FOO:BAR" 在任何情况下运行导入添加-e IMPORT_FROM_VOLUME=true 。

    在使用DMP导入转储文件的情况下,应命名为$ {IMPORT_SCHEME_NAME} .dmp

    用户输入的凭证是$ {IMPORT_SCHEME_NAME} / $ {IMPORT_SCHEME_NAME}

四、连接 Oracle 12c 并修改默认管理员账户密码

    1、修改用户的密码

-- 查看用户的proifle是哪个,一般是default:
SELECT username,PROFILE FROM dba_users;

-- 查看指定概要文件(如default)的密码有效期设置:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

-- 将密码有效期由默认的180天修改成“无限制”:修改之后不需要重启动数据库,会立即生效。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

-- 修改用户SYSTEM 密码
alter user SYSTEM identified by "****password****";

    2、解锁用户的方法


-- 解锁方法
alter user SYSTEM account unlock;

相关链接

    ·  docker-oracle-12c 其GitHub主页: https://github.com/MaksymBilenko/docker-oracle-12c
    ·  Apex 详情 :http://https://github.com/MaksymBilenko/docker-oracle-apex

    ·  docker 的 Github主页:https://github.com/docker

   · Oracle Database 12c 使用文档:http://www.oracle.com/technetwork/cn/database/enterprise-edition/documentation/index.html

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

猜你喜欢

转载自my.oschina.net/u/3375733/blog/1590948