下载oracle11g的镜像
拉取jaspeen/oracle-11g
dokcer pull jaspeen/oracle-11g
创建oracle的安装目录与数据目录
mkdir -p /opt/oracle/server ##镜像解压目录
mkdir -p /opt/oracle/dpdump ##数据存放目录
cp -r /root/database/ /opt/oracle/server/ #将解压后的镜像复制到解压目录
运行oracle镜像
docker run -d --privileged --name oracle11g -p 1521:1521 -v /opt/oracle/server/:/install -v /opt/oracle/dpdump/:/opt/oracle/dpdump jaspeen/oracle-11g
-d 后台运行
-p 端口 1521->1521
-v 数据卷 宿主主机路径:容器路径
–privileged 赋予container内的root用户拥有真正的root权限
这个过程比较漫长,包含创建数据库初始化数据等等
创建oracle用户
docker ps ##查看oralce容器的ID
docker exec -ti 容器ID bash ##进入oracle容器
su oracle ##切换到oracle用户
$ORACLE_HOME/bin/sqlplus / as sysdba ##以系统管理员的身份连接数据库 登录到普通用户sqlplus 用户名/密码
create user test identified by test; ##创建测试用户
简单的用户相关语法
语法[创建用户]: create user 用户名 identified by 口令[即密码];
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
语法[删除用户]:drop user 用户名;
语法[级联删除用户]: drop user 用户名 cascade;
语法[授权用户]: grant connect, resource to 用户名;
语法[撤销授权]: revoke connect, resource from 用户名;
语法[创建角色]: create role 角色名;
语法[授权角色]: grant select on class to 角色名;
语法[删除角色]: drop role 角色名;
至此,docker下运行oracle数据库的教程结束。
拓展:将容器打包成镜像方便后续使用
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit oracle11g oracle11g:v_1.0 ##将容器打包成镜像
docker images ##查看已经生成的镜像