Docker 环境安装 Oracle 11c

首先需要装好 Docker,CentOS 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
# 进入容器(使用容器名称代替容器 ID)
docker exec -it docker-oracle bin/bash
# 使用 oracle 用户
su oracle
# 使用 sysdba 登录
sqlplus / as sysdba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- 新增用户 guang,密码为 ******
CREATE USER guang IDENTIFIED BY ******;
-- 如需修改已有用户密码
ALTER USER guang IDENTIFIED BY ******;
-- 查看 Oracle 数据库的所有用户
SELECT * FROM all_users;
-- 授予其相应数据库权限
GRANT connect, resource, dba TO guang;
-- 修改数据库密码永不过期
-- 查看用户的 profile 是哪个,一般是 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;

修改之后不需要重启数据库,会立即生效。

总结

本文记录通过 Docker 快速部署 Oracle 11g 数据库的过程。主要步骤包括:拉取镜像、下载并解压 Oracle 安装包、启动容器并挂载数据卷、进入容器完成用户配置。使用 Docker 部署 Oracle 可以避免复杂的本地安装过程,非常适合开发和测试环境。生产环境需根据实际需求评估是否使用容器化方案。