一、部署Oracle

1. 拉取Oracle镜像

  1. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.创建挂载文件的文件夹

  1. mkdir -p /dockerImageFile/oracle/data/

3.创建临时Oracle容器

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

说明:这一步主要是为了创建临时容器,将临时容器的文件复制到主机中

4.复制临时Oracle容器内文件到主机中

  1. docker cp oracle11g:/home/oracle/app/oracle/oradata/ /dockerImageFile/oracle/data/

5.修改挂载目录所属用户和用户组

  1. chown -R 500:500 /dockerImageFile/oracle/

6.删除临时容器

  1. docker rm -f oracle_temp

7.创建正式容器

  1. docker run --name oracle11g -p 1521:1521 --privileged=true -d -v /dockerImageFile/oracle/data/oradata:/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

二、Oracle用户操作

1.进入Oracle容器中

  1. docker exec -it oracle11g bash

2. 删除

  1. rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

3.复制

  1. cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

4.退出容器,并重启容器

  1. exit
  1. docker restart oracle11g

5.再次进入容器内,设置用户信息

  1. docker exec -it oracle11g bash

6.设置环境变量

  1. source ~/.bash_profile

7.登入sqlplus

  1. sqlplus / as sysdba

8.修改sys,system密码

修改system密码为123456

  1. alter user system identified by 123456;

修改sts密码为123456

  1. alter user sys identified by 123456;

9创建test用户,密码为123456

  1. create user test identified by 123456;

10.将dba权限授权给内部管理员账

  1. -- golaxy_orcl 为账号
  2. grant connect,resource,dba to golaxy_orcl;

11.修改密码规则策略为密码永不过期

  1. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

12.修改数据库最大连接数据

  1. alter system set processes=1000 scope=spfile;
  2. shutdown immediate;
  3. startup;

13 最后退出容器,使用plsql测试

  1. exit
  2. # 重启容器
  3. docker restart oracle

14 配置tnsnames.ora文件

  1. localhost =
  2. (DESCRIPTION =
  3. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.87.128)(PORT = 1521))
  4. (CONNECT_DATA =
  5. (SERVER = DEDICATED)
  6. (SERVICE_NAME = helowin)
  7. )
  8. )

总结

一次按照上述步骤,即可实现docker环境下oralce的部署