我们使用 docker search oracle 来搜索oralce镜像。
      A 搜索镜像
    docker安装Oracle - 图1
    图二 搜索Oracle镜像
      B 创建volume以持久化数据
      在命令行输入 docker volume create exeed-db命令创建名称为exeed-db的volume
      C 创建并运行Oracle数据库
    在命令行中输入:docker run -d —name exeed-db -p 1521:1521 -p 8080:8080 —shm-size=1g —restart=always -e ORACLEPWD=XXX -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe
    _ 
     这里有几点需要注意的是:
      1 —name exeed-db指定创建的volume .
      2 —shm-size=1g:设置/dev/shm的大小。格式为:。number必须大于0。unit可选,可以是b,k,m或g。如果不指定unit,系统默认使用字节。如果此参数不指定,默认使用64m。
      3 —restart=always —restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。—restart的参数说明 always:无论容器的退出代码是什么,Docker都会自动重启该容器。on-failure:只有当容器的退出代码为非0值的时候才会自动重启。另外,该参数还接受一个可选的重启次数参数,--restart=on-fialure:5表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。(注意:这里如果不限定该重启策略,那么每一次重启电脑后都要手动通过docker start命令来重启当前容器)
      4 ORACLE_PWD用于设置当前Oracle数据库密码。
      5 -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe用于指定使用的Oracle镜像如果本地找不到的话那么就会去联网进行下载。
      当上面的命令执行完毕以后,如果出现下面的提示,则表示Oracle已经在当前机器上安装完毕并且没有错误。  
      SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
      #########################
      DATABASE IS READY TO USE!
      #########################
      D 查看安装镜像的状态
    docker安装Oracle - 图2
    图三 查看已经正确运行的镜像
      E 使用DataGrip来连接创建的Oracle数据库
    docker安装Oracle - 图3
    图四 DataGrip连接Oracle数据库
      这里也许对Host有疑问,不应该是localhost,这里其实我们安装的oracle是跑在虚拟机上面的,这里的地址指的是虚拟机的地址,我们可以在命令行中输入 docker-machine ls来查看当前的虚拟机的地址。
    docker安装Oracle - 图4
    图五 获取当前的Docker Machine 信息
      这里我们使用sys as sysdba来作为登录用户,这里的密码就是执行docker run 运行时创建的密码,然后点击测试就可以连接自己的oracle数据库了。
      F 后续操作
      使用sys as sysdba登录后创建新的用户:AfterSales,这里记住要创建默认的表空间,接着我们就可以给刚才创建的用户AfterSales授予权限了,这样下次我们就可以通过新建的账户来进行数据库操作了。
      — Oracle 管理用户
      — 创建用户
      CREATE USER AfterSales IDENTIFIED BY XXX DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
      — 赋予权限
      GRANT CONNECT, CREATE TABLE, CREATE TRIGGER, CREATE PROCEDURE, CREATE VIEW, CREATE SEQUENCE, DEBUG CONNECT SESSION TO AfterSales ;
      — 删除用户
      DROP USER AfterSales CASCADE;
      二 Windows10上面的安装
      Windows10上面的安装和Windows7上面有些差别,具体使用的技术也是完全不同的。
      A 启用Hyper-V
      打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图:
    docker安装Oracle - 图5
    图六 开启Hyper-V
      B 安装Docker
      Docker下载地址请点击这里, 点击如图处即可下载安装包,然后进行安装。
      C 重启机器
      在重启机器后我们可以在任务栏中发现已经运行的Docker,这点和Windows7上面不同,Windows7需要每次重启启动Docker Quickstart Terminal,Windows10则不需要。  
    docker安装Oracle - 图6
    图七 Windows10中Docker任务栏图标
      另外后续的过程和Windows7中完全一样,只不过Windows10中Host不再是虚拟机的地址了,而是直接使用localhost便可以进行登录了。
      最后附上Oracle官方给出的在Docker上面安装Oracle的文档,请点击这里