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

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

若见下图证明pull成功。

Docker 安装 Oracle12c_docker

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

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

Docker 安装 Oracle12c_oracle_02

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

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

Docker 安装 Oracle12c_sql_03

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

启动容器
docker run -d --name oracle -p 8080:8080 -p 1521:1521 -v $PWD/data:/mnt -e TZ=Asia/Shanghai sath89/oracle-12c

可用下述命令实现容器和数据的有效分离:

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

默认情况下,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

安装需要一段时间等出现以下内容说明安装成功

Database ready to use. Enjoy! ;)

Docker 安装 Oracle12c_sql_04

进入容器

[root@master oracle]# docker exec -it ef7e5bc1c20e /bin/bash (ef7e5bc1c20e自己容器的ID)

进入容器后是root用户切换到oracle用户

root@ef7e5bc1c20e:/# su oracle

默认Oracle的实例叫xe,没有配置环境变量,需要先运行.oraenv设置环境变量。

. oraenv

ORACLE_SID = [oracle] ? xe
The Oracle base has been set to /u01/app/oracle

使用sysdba登陆

oracle@ef7e5bc1c20e: sqlplus / as sysdba
//create tablespace 表空间名称 datafile 表空间路劲 size 3000m;

SQL>create tablespace bspdb datafile '/u01/app/oracle/oradata/xe/bspdb.dbf' size 3000m;

//create user 用户名 identified by 密码 default tablespace 用户默认使用哪一个表空间;

SQL>create user bspdb identified by 123456 default tablespace bspdb;

//grant 角色1,角色2 to 用户名;

SQL>grant dba, connect to bspdb;
连接此镜像的 Oracle Database 12c

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

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

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

http://localhost:8080/em
user: sys
password: oracle
connect as sysdba: true
连接 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;