Docker安装Oracle 11g

oracle 11g在本地系统上安装可能会出现很多的问题, 所以我选择在docker上运行oracle11g来使用.
下面是我的配置步骤. (该配置过程与具体的系统无关, 只需要部分改动)

该配置步骤, 我的系统是centos7.3, 使用的是阿里云服务器. 如果你是其他的系统或者平台, 仅需改动1-4步中的oracle安装文件的下载方式和解压方式, 然后根据自己的进行解压的数据库安装包路径, 更改第四步中的<install_folder>即可.

开始前的准备

  1. 确保你系统上的docker服务是可以使用的.
  2. 下载具体的oracle安装文件, 也就是两个压缩文件, 下载到你指定的系统上.

notice:我选择的docker image其实是一个"自动配置安装"oracle 11g的镜像, 所以你需要自己下载oracle11g的安装包. windows和mac等桌面平台比较好下载, 通过shell命令推荐wget. 下面给出示例:(因为oracle现在下载软件需要登录用户, 所以我这里示例的下载链接你可能不能使用, 这时候你再去oracle官网重新更换下载链接即可)

    wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441
    wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441

开始

  1. 创建一个目录

    mkdir install
    cd install
    mkdir database
    
    [root@iz2zehkwp9rwg4mvyl3jaez database]# pwd
    /install/database
    

    这是我创建的目录, 不需要一定和我一样.

  2. 将下载的oracle安装压缩文件解压到/install/database

    unzip oracle1/2.zip -d /install/database
    unzip oracle1/2.zip -d /install/database
    

    如果你的系统中没有unzip, 可以通过yum install unzip安装

  3. docker image准备

    systemctl start docker
    
    docker pull jaspeen/oracle-11g
    

    该image在docker hub的地址: Here 如果你想进一步了解,里面有具体的说明, 这里感谢该image的作者~

  4. 通过镜像开启容器服务
    <install_floader> 是你将oracle11g安装文件解压到的文件路径

    docker run --privileged --name oracle11g -p 1521:1521 -v <install_folder>:/install jaspeen/oracle-11g
    

    这里给出我的

    docker run --privileged --name oracle11g -p 1521:1521 -v /install/database:/install jaspeen/oracle-11g
    

    这里如果出现了Checking swap space: 0 MB available, 150 MB required. Failed
    给出一个我找到的解决方案: centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<<
    其他的错误如果没有自动跳出docker的run启动过程, 就不用管, 这个过程有点慢, 如果最后停止不动, 可能是已经开启了服务, 这个时候ctrl+z可能不好使, 退出console重新连接, 然后进行下一步.

  5. 查看结果

    docker ps
    
容器成功开启

看到这里, oracle11g的容器已经开启.

  1. 进入oracle11g容器
docker exec -it oracle11g /bin/bash

切换到image的oracle用户

su - oracle

进入oracle数据库

sqlplus / as sysdba
过程截图
  1. 解锁scott用户
SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger
ERROR:
ORA-28001: the password has expired
Changing password for scott
New password:
Retype new password:
Password changed
Connected.
SQL> 

8.通过数据库管理工具连接oracle数据库(这里我是通过datagrip)

连接工具配置截图

HOST地址根据你的数据库所在系统的ip地址进行设置

参考:
使用docker安装oracle 11g
jaspeen/oracle-11g
Swap错误

推荐阅读更多精彩内容