下载或者加载镜像

docker load <  oracle11g.tar

创建临时容器

docker run --name oracle_temp -p 1500:1521 --privileged=true -d registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

mkdir -p /home/data/oracle/oradata

docker cp oracle_temp:/home/oracle/app/oracle/oradata/ /home/data/oracle   #复制

chown -R 500:500 /data/app/oracle/oradata/ #修改挂载目录所属用户和用户组
chown -R 500:500 /home/logs/oracle/logs   

docker rm -f oracle_temp  #删除临时容器

创建正式容器

docker run -d --name oracle -p 1521:1521 \
 --privileged=true --restart=always \
 -v /home/data/oracle/oradata:/home/oracle/app/oracle/oradata \
 -v  /home/logs/oracle/logs:/home/oracle/app/oracle/product/11.2.0/dbhome_2/rdbms/log \
 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

参数说明:–privileged 开启特权模式,可以设置容器的内核参数–name 给容器取一个名称-p 端口-d 指定守护进程进行运行–restart=always 总是要重启,跟着docker一起启动并一直会自动运行

进入容器修改配置

docker exec -it hs_oracle bash
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl #删除oracle的机制文件
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl #拷贝
exit;
docker restart oracle  #重启

进入容器设置

docker exec -it  oracle bash

source ~/.bash_profile  #生效配置

登录oracle并设置账号密码

sqlplus / as sysdba   #登录sqlplus
alter user system identified by system;  #修改system用户账号密码
alter user sys identified by system;    #修改sys用户账号密码
grant connect,resource,dba to system; 
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; #修改密码规则策略为密码永不过期
alter system set processes=1000 scope=spfile;  #修改数据库最大连接数据