我们正在努力尝试为我们的开发人员提供一个Oracle 11g实例来进行testing。 我们的标准构build代理基于Ubuntu 12.04,但Oracle仅支持基于RedHat的操作系统。
有一些关于在Ubuntu上安装Oracle的Oracle黑客攻击,但他们似乎是非常脆弱和一个问题。
为了支持Oracle,我们希望避免必须在RedHat(/ CentOS)之上支持整个构build服务器Puppetconfiguration,所以我开始怀疑我们是否可以使用Docker来提供仅用于Oracle的RedHat-like环境我们的标准Ubuntu系统的顶部。 这个想法是,甲骨文将运行在自己的容器,但其余的生成代理将仍然在标准的Ubuntu上运行,能够通过TCP与Oracle交谈。
我知道LXC是什么,以及它们与KVM / VirtualBox等全面虚拟化之间的区别,但是我想知道它是否仍然有可能。
谢谢。
这是我的叉子:
你可以在这里检查:
https://registry.hub.docker.com/u/sath89/oracle-xe-11g/
https://github.com/MaksymBilenko/docker-oracle-xe-11g
如果Oracle Express适合您:
现在你有一个Oracle XE 11g的deb包。 安装它!
但是仍然有一个问题:/ dev / shm。 这里如何解决它:
启动Oracle XE:服务oracle-xe configure
我正在使用以下docker图像,并取得了很好的成功。
让它运行:
docker pull wnameless/oracle-xe-11g
和
docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
我可以确认Oracle XE在Docker中工作。 唯一的问题是,容器内的SHMconfiguration为只有65356K请参阅https://github.com/dotcloud/docker/issues/2606到目前为止唯一的解决方法是更改lxc模板并重新编译docker(这很容易)
这绝对是一个可行的方法。 我们在主机上使用Ubuntu 14.04,并在Docker容器中运行多个Oracle 11g实例以用于开发。
目前(Docker 1.5)对于11g和12c,主要问题是Docker的硬编码共享内存限制问题#2606 。 目前有两种解决方法:
docker run --privileged ...并在启动实例之前用更多的内存重新装入/ dev / shm 您可以在我的博客上逐步使用Ubuntu 14.04上的OEL 6.5 LXC Linux Containers ontop:
https://sites.google.com/site/nandydandyoracle/technologies/lxc/oracle-lxc-vlc