Docker使用Oracle官方镜像安装(12C,18C,19C)
安装准备
- 操作系统CentOS7_x64
- 已经安装了Docker环境
- 需要检查是否有swap分区,如果没有请设置
- Oracle官方dockerfiles下载
1.下载
地址:https://github.com/oracle/docker-images
2.上传
解压后打开docker-images-master\OracleDatabase\SingleInstance将dockerfiles文件夹上传到Linux的指定目录,如/data0/oracle
![]()
3.修改文件执行权限
chmod a+x *.sh && chmod a+x */*.sh
- Oracle镜像准备
- 12c (12.1.0.2.0) - Enterprise Edition
linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip- 12c (12.1.0.2.0) - Standard Edition (SE2)
linuxamd64_12102_database_se2_1of2.zip
linuxamd64_12102_database_se2_2of2.zip- 12c (12.2.0.1.0) - Standard Edition 2 and Enterprise Edition
linuxx64_12201_database.zip- 18c 18.3
LINUX.X64_180000_db_home.zip- 19c 19.3
LINUX.X64_193000_db_home.zip注意:对应版本请下载对应安装文件
安装
上传Oracle镜像
上传对应版本的Oracle至dockerfiles对应文件夹中
如:12c (12.1.0.2.0) - Enterprise Edition
制作Docker镜像
在dockerfiles文件夹下执行制作命令,对应版本执行对应命令
- 12c (12.1.0.2.0) - Enterprise Edition
./buildDockerImage.sh -v 12.1.0.2 -e
- 12c (12.1.0.2.0) - Standard Edition (SE2)
./buildDockerImage.sh -v 12.1.0.2 -s
- 12c (12.2.0.1.0) - Standard Edition 2 and Enterprise Edition
./buildDockerImage.sh -v 12.2.0.1 -e
- 18c 18.3
./buildDockerImage.sh -v 18.3.0 -e
- 19c 19.3
./buildDockerImage.sh -v 19.3.0 -e
运行镜像
- 新建oracle用户以及对应的组
groupadd -g 1000 oinstall && groupadd -g 1300 dba && groupadd -g 1301 oper && useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle && echo "oracle" | passwd --stdin oracle
- 创建数据存放目录并授权
mkdir -p /data1/oracle/oradata && chown -Rf oracle:oinstall /data1/oracle/oradata
- 运行镜像
docker run --name oracle12c \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_SID=jun \
-e ORACLE_PDB=junpdb \
-e ORACLE_PWD=Oracle \
-v /data1/oracle/oradata:/opt/oracle/oradata \
oracle/database:12.1.0.2-ee
注意:
oracle12c为docker容器名字
oracle/database:12.1.0.2-ee为要运行的镜像名字
对应的oracle要使用对应的名称
运行结果
调试数据库
- 进入dokcer容器
docker exec -it oracle12c /bin/bash
- 设置环境
export ORACLE_SID=JUN
- 登录数据库
sqlplus / as sysdba
- 查看数据库运行状态
select status from v$instance;
- 修改sys用户密码
alter user sys identified by oracle;
外网连接测试
用户名:sys
密码:oracle
服务名:JUN
端口:1521

