Docker 安裝 Oracle12c

 

    首先,系統(3.8以上內核的linux)中安裝好 Docker 這個運用程序。因爲網絡緣由,咱們下載一個Docker官方的鏡像須要很長的時間,甚至下載失敗。爲此,阿里雲容器鏡像服務提供了官方的鏡像站點,從而加速官方鏡像的下載速度。 [ 不會的能夠參考我以前的文章:Docker <一> 架構簡介與Linux上安裝 http://www.javashuo.com/article/p-qdsjcbsd-bh.html]。html

 

1、Docker 安裝 Oracle12c

    一、查看docker倉庫中的 oracle 命令

docker search oracle

    以看到下圖所示的信息:linux

    二、爲選定須要pull到系統中的數據庫鏡像

# docker pull sath89/oracle-12c --------sath89/oracle-12c爲選定須要pull到系統中的數據庫鏡像

docker pull sath89/oracle-12c

    整個pull過程須要花費一些時間,耐心等待。nginx

    若見下圖證實pull成功。git

 

2、查看並啓動Docker 鏡像

    一、列出已下載的鏡像

# 使用 docker images 命令便可列出已下載的鏡像

docker images

    執行命令後,可看到相似於以下的表格:github

    二、列出運行中的容器

# 使用 docker ps 命令便可列出運行中的容器

docker ps

    執行命令後,可看到相似於以下的表格:sql

    能夠發現,目前沒有運行的容器。故,接下來咱們新建並啓動一個 Oracle12c 容器。docker

 

3、啓動容器,使用 Oracle 12c 數據庫

    一、新建並啓動容器

# 使用 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端口:bash

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

   二、鏈接此鏡像的 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}

 

4、鏈接 Oracle 12c 並修改默認管理員帳戶密碼

    一、修改用戶的密碼

-- 查看用戶的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****";

    二、解鎖用戶的方法

-- 解鎖方法
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/

相關文章
相關標籤/搜索