Docker 安装 Oracle
Oracle 用 Docker 来安装很方便,其他的都麻烦,不省心。但是也有一些坑要踩,故有此文。
安装 Oracle
Docker 自行安装
下载镜像:
docker pull sath89/oracle-12c
镜像较大,速度较慢,建议换源加速:
安装完后启动:
1
docker run --name myoracle -d -p 8080:8080 -p 1521:1521 -v /docker_data/oracle:/u01/app/oracle sath89/oracle-12c
参数解释如下:
--name
:容器名字-d
:后台运行容器,并返回容器ID;-p
:端口映射,本机:容器
-v
:挂载本地目录,将数据保留在本机来达到数据持久化的目的,要不每次起的容器都是全新的。本机:容器
容器需要初始化,通过 docker logs -f myoracle
来查看进度。出现最底下的 Database ready to use. Enjoy! ;)
后代表初始化成功。
接下来进入容器:su oracle
,连接 Oracle:$ORACLE_HOME/bin/sqlplus / as sysdba
新建一个表测试一下数据持久化:
1
2
3
4
5
6
7create 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
会显示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18found 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! ;)
没有再初始化了。进入数据库看看:
1
2
3
4
5SQL> select count(*) from student;
COUNT(*)
----------
0
来呀快活呀