1.拉取镜像
docker pull jaspeen/oracle-11g
2.创建备份文件目录, 数据目录和安装文件目录
mkdir -p /home/soft/docker/oracle11g/dumpdir
mkdir -p /home/soft/docker/oracle11g/data
mkdir -p /home/soft/docker/oracle11g/install
3.将oracle-11g-linux.zip解压到install下, 出现database文件夹
4.运行, 安装oracle
docker run -d --privileged -p 1521:1521 -v /home/soft/docker/oracle11g/install:/install --name oracle11g-installer jaspeen/oracle-11g
5.查看日志, 等待数据库安装完成
docker logs -f -t --tail=200 oracle11g-installer
6.保存安装完的镜像
docker stop oracle11g-installer
docker commit oracle11g-installer oracle11g
docker rm oracle11g-installer
7.运行构建好的镜像
docker run -d -p 1521:1521 -v /etc/localtime:/etc/localtime:ro -v oracledata11g:/opt/oracle/app/oradata -v /home/soft/docker/oracle11g/dumpdir:/opt/oracle/dpdump -v /home/soft/docker/oracle11g/data:/opt/oracledata --name oracle11g oracle11g
可用下面命令删除数据库数据
docker volume rm oracledata11g
之后新建的表空间位置最好设置在/opt/oracledata下
8.查看日志, 等待数据库启动完成
docker logs -f -t --tail=200 oracle11g
9.连接: localhost:1521, 服务名: orcl, 管理员账号密码: sys/oracle
10.如果碰到下列问题:
ORA-12528:TNS:listener:all appropriate instances are blocking new connections
则是因为oracle服务器异常关闭,断电,导致oracle控制文件版本不一致, 然后不能自动挂载, 手动去修改控制文件后挂载.
docker exec -it oracle11g /bin/bash
su - oracle
cp /opt/oracle/app/oradata/orcl/control01.ctl /opt/oracle/app/flash_recovery_area/orcl/control02.ctl
sqlplus / as sysdba
alter database mount
alter database open