Docker 可以帮我在 Ubuntu 上安装 Oracle 11g 数据库吗?

Amo*_*ira 1 oracle ubuntu redhat centos lxc

我们正在努力解决一个常见问题,即试图为我们的开发人员提供一个 Oracle 11g 实例进行测试。我们的标准构建代理基于 Ubuntu 12.04,但 Oracle 仅支持基于 RedHat 的操作系统。

网上流传着一些关于在 Ubuntu 上安装 Oracle 的技巧,但它们似乎非常脆弱,而且是一个命中注定的问题。

我们希望避免为了支持 Oracle 而不得不在 RedHat(/CentOS) 之上支持整个构建服务器 Puppet 配置,所以我开始怀疑我们是否可以使用 Docker 来提供 Oracle 所需的类似 RedHat 的环境我们的标准 Ubuntu 系统的顶部。这个想法是 Oracle 将在自己的容器中运行,但构建代理的其余部分仍将在标准 Ubuntu 上运行,能够通过 TCP 与 Oracle 通信。

我知道 LXC 是什么以及它们与 KVM/VirtualBox 等成熟虚拟化之间的区别,但我想知道它是否仍然可能。

谢谢。

小智 5

如果 Oracle Express 适合您:

  1. 下载 Oracle XE 11g rpm。
  2. 使用 Alien 将 rpm 转换为 deb。
  3. 使用 dpkg-deb 命令“提取”deb 包。
  4. 修改 deb 脚本:
    • 将 preinst 开头的 [ "$1" != "1" ] 改为 [ "$1" != "install" ]。
    • 将 postint 开头的 [ "$1" = "1" -o -z "$2" ] 更改为 [ "$1" = "configure" -a -z "$2" ]。
    • 在 prerm 和 postrm 中将 [ "$1" = "0" ] 更改为 [ "$1" = "remove" -o "$1" = "purge" ]。
    • 在 postinst 和 prerm 中将 'chkconfig' 更改为 'update-rc.d' 命令。
    • 在init脚本中:删除一些系统命令的绝对路径;将 /etc/sysconfig/oracle-xe 修复为 /etc/default/oracle-xe;将 /var/lock/subsys 修复为 /var/lock;等等...
    • 将依赖项添加到控制文件:bc & libaio1。
  5. 使用 deb 命令构建 deb 包。

现在您有一个 Oracle XE 11g 的 deb 包。安装它!

但是还有一个问题:/dev/shm。这里如何修复它:

  1. 注释 /etc/init/mounted-dev.conf 中的行: [ -e /dev/shm ] || ln -s /run/shm /dev/shm。
  2. 在 /etc/fstab 中添加一行: shm /dev/shm tmpfs size=2g 0 0
  3. rm -f /dev/shm; mkdir /dev/shm; 安装 shm

启动 Oracle XE:service oracle-xe configure