- 第一篇文章(算博客吗?),有什么不对的地方欢迎交流。谢谢!
一、安装Docker
- 这里我们使用
Docker Toolbox来安装Docker。Docker Toolbox 下载地址 - 安装就不需要我多说了,安装之后多出3个应用程序。
- 第一个是
docker命令行界面。 - 第二个是
docker gui操作界面。 - 第三个是 虚拟机。

- 第一个是
-
这里我们启动
Docker Quickstart Terminal该程序会为我们做以下事项。- 打开命令控制台。
- 创建
VirtualBox ISO虚拟机和证书ssh key。 - 启动
VirtualBox并运行docker进程。 -
创建
default的码头。
-
注意:如果你没有出现上图蓝色框中的内容并且红色框中什么都没有,那么说明初始化失败了,这时关掉这个命令控制台,在重新启动一下
Docker Quickstart Terminal就好了。
-
启动完毕之后,你就可以运行docker命令了。下面运行
hello-world来校验是否安装成功。docker run hello-world

- 出现图上的情况说明
Docker已经成功安装。
- 出现图上的情况说明
-
而如果你出现图下这种情况的话,说明你是在
Mac终端运行的该命令,解决方法有两种。
- 启动
Docker Quickstart Terminal在该命令窗口执行上述命令。 -
获取
default虚拟机的环境变量,在连接到default虚拟机之后执行第四步就没问题了。docker-machine env default
eval $(docker-machine env default)
- 启动
二、配置Oracle加速器
- 安装
Oracle之前,我们可以给docker配置一个加速器。PS:配不配置都无所谓,不过配置后等会你下载Oracle速度应该会快一点。 -
这里我使用的是阿里云提供的加速器。加速器地址

- 点击加速器,就可以看到你的专属加速器地址了。
-
我们可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。PS:link是你的专属加速地址。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["link"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
三、安装Oracle
-
执行该命令下载
Oracle镜像。docker pull alexeiled/docker-oracle-xe-11g
-
启动
Oracle镜像,并命名Oracle。docker run -h "oracle" --name "oracle" -d -p 49160:22 -p 49161:1521 -p 49162:8080 alexeiled/docker-oracle-xe-11g
-
查看
Oracle是否成功安装。docker ps

- 49160:是连接ssh对应的端口。
- 49161:是连接sqlplus对应的端口。
- 49162:是连接oem对应的端口。
-
成功安装后我们试试连接
Oracle。docker exec -it CID /bin/bash
- 这里的CID是你自己的
CONTAINER ID,不知道自己的CID的请查看第三步。
- 仔细看,在执行红色框中的命令后,蓝色区域的变化。
- 这里的CID是你自己的
-
进入
Oracle中的root用户后,在连接sqlplus。- Oracle有两个用户
sys和system默认密码都是oracle。 -
这里我用
sys账户登录。-
首先进入
sqlplussqlplus
- 执行上述命令后,会提示你输入账号和密码,这里有个注意的地方!直接上图讲解。

- 上图第4点另外还有个注意的地方,就是第一次进入sqlplus时,会提示这个信息,大意就是密码将在7天内过期。
ERROR: ORA-28002 : the password will expire within 7 days- 出现上述情况的原因在于
Oracle11g在default profile中设定了180 days。PS:有人肯定会问这不是180天吗跟7天有什么关系,在这里不作详细解释。 - 具体解决方案等会使用Intellij IDEA 连接后解决。PS:主要是好操作。
- 出现上述情况的原因在于
-
- Oracle有两个用户
三、使用 Intellij IDEA 连接 Oracle 数据库
- 随便创建一个项目。
- 然后连接Oracle数据库。

- 配置。

- 这里注意
Port端口是49161。 -
Host通过docker-machine ip命令获取。 - 最后点击
Test Connection出现上图显示则代表成功连接上Oracle。
- 这里注意
-
现在来解决关于密码7天过期的问题。
-
首先检查该用戶的
profile是哪個,一般都是DEFAULT。SQL SELECT username,PROFILE FROM dba_users;

-
查看该
DEFAULT的密码有效期配置。SQL SELECT * FROM dba_profiles d WHERE d.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

-
將密码有效期由180天改成无期限。
SQL ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Paste_Image.png -
到这里就已经搞定,但是这只是代表了后面用别的用户登录不会出现
ORA-28002错误,但之前我们用sys用户登录该用户密码依然会在7天后过期,所以只需要我们在修改一次密码行了。alter user sys identified by 密码
-
眼尖的人在第一步发现我解锁了
HR用户和SCOTT用户,既然都给你们看了,就顺便说下怎么解锁和创建吧!-
解锁
HR用户-
首先查看用户名和用户状态
SQL SELECT username,account_status FROM dba_users ORDER BY username;

-
然后解锁
HR用户SQL ALTER USER hr ACCOUNT UNLOCK ;
-
-
创建
SCOTT用户-
首先创建用户
SQL CREATE USER scott IDENTIFIED BY tiger;
-
然后授权
SQL GRANT CONNECT ,RESOURCE ,DBA TO scott;
-
-
到这里就告一段落了。第一次写感觉好累,不过心里还是特满足的哈哈......
-