当前位置:   article > 正文

docker弄oracle,Docker搭建Oracle

docker安装oracle没有写权限

前言

这两天需要搭建Oracle19c版本进行测试,发现去网上找,或者是去docker hub上搜索,基本上都是sath89/oracle12c这个或者是bfom/oracle-12c这些个镜像,但是就没有人制作了Oracle19c的镜像,我想,这个私人没有制作,那么Oracle自己肯定来了个offical(官方镜像),然后我就去找啊找,但是结果:没有。

后面搜索到一个信息,大致意思是:Oracle官方不允许私人拿他的数据库进行制作一个即pull即run的docker image了,如果在docker hub上有的,那么估计被甲骨文律师事务所给警告删除了.不过,官方还是给了个方案来做Docker的Oracle image.

Oracle官方制作docker image过程

1.先下载Oracle写的一个dockfile的东西

git clone https://github.com/oracle/docker-images.git

这里面包含很多版本的镜像制作脚本工具

我的是clone到了:/media/liuxu/data/leonard/tools/oracle19c

复制代码

2.下载Oracle对应版本的压缩包(zip文件,如果有多个那就下载多个)

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

这个地址包含了11.2-19c的版本的,如果想找之前,请拉到最后:Previous Database Release Software,进行查找

复制代码

3.将下载好的ZIP文件copy到dockfile目录

cp ~/Downloads/LINUX.X64_193000_db_home.zip /media/liuxu/data/leonard/tools/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/

注意:看你的数据库版本,copy到对应的版本文件夹下面去

复制代码

4.运行命令,制作docker image

$ cd /media/liuxu/data/leonard/tools/oracle19c/docker-images/OracleDatabase/SingleInstance/dockerfiles

$ ./buildDockerImage.sh -v 19.3.0 -e

注意:这一个步骤是漫长的等待。也就半个小时而已.输出信息太多,我就不贴了!

复制代码最后的输出日志:

Changing groupname of /opt/oracle/oraInventory to dba.

The execution of the script is complete.

Check /opt/oracle/product/19c/dbhome_1/install/root_b26c57265eb5_2019-11-06_05-08-00-978749653.log for the output of root script

Removing intermediate container b26c57265eb5

---> 05ead40e7f4e

Step 18/23 : USER oracle

---> Running in 6d577e76fba0

Removing intermediate container 6d577e76fba0

---> a51d59624aaf

Step 19/23 : WORKDIR /home/oracle

---> Running in 5114f387b868

Removing intermediate container 5114f387b868

---> 15f8e332761c

Step 20/23 : VOLUME ["$ORACLE_BASE/oradata"]

---> Running in bacecd10e611

Removing intermediate container bacecd10e611

---> ddbbf7bd1071

Step 21/23 : EXPOSE 1521 5500

---> Running in cf58f4f7a5ef

Removing intermediate container cf58f4f7a5ef

---> 4ea9a2715652

Step 22/23 : HEALTHCHECK --interval=1m --start-period=5m CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1

---> Running in a63ca1e440ee

Removing intermediate container a63ca1e440ee

---> 6dfd61e0006a

Step 23/23 : CMD exec $ORACLE_BASE/$RUN_FILE

---> Running in 45122cd289f3

Removing intermediate container 45122cd289f3

---> c592b9cb2a9c

Successfully built c592b9cb2a9c

Successfully tagged oracle/database:19.3.0-ee

Oracle Database Docker Image for 'ee' version 19.3.0 is ready to be extended:

--> oracle/database:19.3.0-ee

Build completed in 919 seconds.

复制代码

详细的可以参考这个:docker-images/OracleDatabase/SingleInstance/README.md 这个里面讲的很仔细(或者这个:github.com/oracle/dock…)

5.启动

docker run --name oracle19c \

-p 1521:1521 \

-p 5500:5500 \

-v /media/liuxu/data/leonard/tools/oracle19c/oracle19c-data:/opt/oracle/oradata \

oracle/database:19.3.0-ee

注意第一行日志:ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: iV86pmS7ZxI=1

后面:iV86pmS7ZxI=1 都是密码

复制代码

6.之后自己就可以使用软件登录Oracle了

问题

启动容器的时候碰到了这个问题:

Cannot create directory "/opt/oracle/oradata/ORCLCDB"

这个问题:是因为,你挂载出来了,然后Docker肯定是写到你挂载的路径下面,然后,没有写入权限。

解决方案就是:给个写的权限就行,我使用:sudo chmod 777 -R /media/liuxu/data/leonard/tools/oracle19c/oracle19c-data (有点暴力)

复制代码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/906144
推荐阅读
相关标签
  

闽ICP备14008679号