Docker 安装 Oracle

Author Avatar
Tr0y 4月 16, 2019 15:50:53 本文共 418 字
  • 文为知己者书
  • 在其它设备中阅读本文章

Oracle 用 Docker 来安装很方便,其他的都麻烦,不省心。但是也有一些坑要踩,故有此文。

安装 Oracle

Docker 自行安装

下载镜像:
docker pull sath89/oracle-12c
镜像较大,速度较慢,建议换源加速

安装完后启动:

docker run --name myoracle -d -p 8080:8080 -p 1521:1521 -v /docker_data/oracle:/u01/app/oracle sath89/oracle-12c

参数解释如下:

  1. --name:容器名字
  2. -d:后台运行容器,并返回容器ID;
  3. -p:端口映射,本机:容器
  4. -v:挂载本地目录,将数据保留在本机来达到数据持久化的目的,要不每次起的容器都是全新的。本机:容器

容器需要初始化,通过 docker logs -f myoracle 来查看进度。出现最底下的 Database ready to use. Enjoy! ;) 后代表初始化成功。

接下来进入容器:su oracle,连接 Oracle:$ORACLE_HOME/bin/sqlplus / as sysdba

新建一个表测试一下数据持久化:

create table student (
   xh number(4), -- 学号
   xm varchar2(20), -- 姓名
   sex char(2), -- 性别
   birthday date, -- 出生日期
   sal number(7,2) -- 奖学金
);

退出容器后,停止并删除容器:docker stop myoracle; docker rm myoracle

接下来再起一次,docker logs -f myoracle 会显示:

found files in /u01/app/oracle/oradata Using them instead of initial database
ORACLE instance started.

Total System Global Area  629145600 bytes
Fixed Size            2927528 bytes
Variable Size          306185304 bytes
Database Buffers      314572800 bytes
Redo Buffers            5459968 bytes
Database mounted.
Database opened.
Starting web management console

PL/SQL procedure successfully completed.

[IMPORT] Not a first start, SKIPPING Import from Volume '/docker-entrypoint-initdb.d'
[IMPORT] If you want to enable import at any state - add 'IMPORT_FROM_VOLUME=true' variable

Database ready to use. Enjoy! ;)

没有再初始化了。进入数据库看看:

SQL> select count(*) from student;

  COUNT(*)
----------
     0

证明数据已经可以持久化,安装完成!

End

What do you think?

本文标题: Docker 安装 Oracle
原始链接: http://www.tr0y.wang/2019/04/16/用Docker安装Oracle/
发布时间: 2019.04.16-15:50
最后更新: 2019.05.31-16:36
版权声明: 本站文章均采用CC BY-NC-SA 4.0协议进行许可。转载请注明出处!