【OpenEuler23.09】Docker部署Oracle21C
以下是一个简化的Docker部署Oracle 21c数据库的示例:
# 使用OpenEuler 23.09作为基础镜像
FROM openEuler:23.09
# 安装必要的软件包
RUN dnf install -y oracle-database-server-21c && \
dnf clean all
# 设置环境变量
ENV ORACLE_HOME=/opt/oracle/product/21c/dbhome_1 \
ORACLE_SID=orcl
# 设置用户和权限
RUN groupadd -g 54321 oinstall && \
groupadd -g 54322 dba && \
useradd -u 54321 -g oinstall -G dba -m oracle && \
mkdir -p /opt/oracle && \
chown -R oracle:oinstall /opt/oracle && \
chmod -R 775 /opt/oracle
# 设置容器启动时运行的命令
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
# 这个脚本会初始化并启动Oracle 21c数据库
docker-entrypoint.sh
脚本示例:
#!/bin/bash
# 初始化Oracle数据库
/opt/oracle/product/21c/dbhome_1/bin/dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName orcl \
-createAsContainerDatabase false \
-sid orcl \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword Admin123 \
-systemPassword Admin123 \
-createSysDBA true \
-storageType FS \
-datafileDestination '/opt/oracle/oradata' \
-recoveryAreaDestination '/opt/oracle/flash_recovery_area' \
-redoLogFileSize 50 \
-enableArchive true \
-archiveLogDestination '/opt/oracle/oradata' \
-storageType FS \
-databaseType OLTP \
-memoryPercentage 30 \
-emConfiguration NONE
# 启动监听器和数据库实例
su - oracle -c "sqlplus / as sysdba <<EOF
ALTER SYSTEM REGISTER;
EXIT;
EOF"
# 启动tnslsnr服务
lsnrctl start
# 容器进入无限循环,保持服务运行
tail -f /dev/null
请注意,这个示例仅用于演示目的,并且不包括生产环境中所有必要的安全措施和配置选项。在实际部署中,需要根据具体需求调整环境变量、存储选项、资源限制、密码等敏感配置。
评论已关闭