下载或者加载镜像
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; #修改数据库最大连接数据