Docker 环境安装 Oracle 11c

首先需要装好 DockerCentOS 7 安装 Docker 可点击参考此文章

下载 Docker Oracle 镜像

1
docker pull jaspeen/oracle-11g

注:此镜像没有 Oracle 安装包,里面有自动安装数据库的脚本,启动镜像容器时,需要容器卷下有相应的安装包(官网下载),所以大小才 281MB,需要自行下载 Oracle 11g 安装包。

Oracle 官方安装包获取

  • 下载地址:Oracle 11g 官网下载,下载 linux.x64_11gR2_database_1of2.zip
    linux.x64_11gR2_database_2of2.zip 两个文件。如下图:
    Oracle 官网下载页面

  • 将下载完的文件,使用 xftp 传输到装有 Docker 的 Linux 服务器上,并解压至 /root/oracleinstall,解压后目录如下图:
    Oracle 安装包目录

启动 jaspeen/oracle-11g 镜像容器实例

使用如下命令启动容器,注:-v /root/oracleinstall:/install 此容器卷必须添加,且安装包必须解压到对应容器卷宿主机的目录中。

1
docker run --privileged --name docker-oracle -p 1521:1521 -v /root/oracleinstall:/install jaspeen/oracle-11g

启动日志出现 100% complete 则说明安装成功。
Oracle 安装成功日志

进入 Oracle 容器内部修改用户名密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 进入容器
docker exec -it 1c00 bin/bash
# 使用 oracle 用户
su oracle
# 使用 sysdba 登陆
sqlplus / as sysdba
# 新增/修改用户 guang 密码为 ******
create/alter user guang identified by ******;
#查看 Oracle 数据库的所有用户
select * from all_users;
# 授予其相应数据库权限
grant connect,resource,dba to guang;

# 修改数据库密码永不过期
#查看用户的proifle是哪个,一般是default:
SELECT username,PROFILE FROM dba_users;
#查看指定概要文件(如default)的密码有效期设置:
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
#将密码有效期由默认的180天修改成"无限制":
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。