Мы пытаемся решить распространенную проблему: предоставить нашим разработчикам экземпляр Oracle 11g для тестирования. Наши стандартные агенты сборки основаны на Ubuntu 12.04, но Oracle поддерживает только ОС на базе RedHat.
В сети есть несколько хакерских приемов по установке Oracle на Ubuntu, но они кажутся очень хрупкими и могут быть случайными.
Мы хотим избежать необходимости поддерживать всю конфигурацию Puppet сервера сборки поверх RedHat (/ CentOS) только для поддержки Oracle, поэтому я начал задаваться вопросом, можем ли мы использовать Docker для обеспечения среды, подобной RedHat, необходимой только для Oracle на вершина наших стандартных систем Ubuntu. Идея состоит в том, что Oracle будет работать в собственном контейнере, но остальная часть агента сборки по-прежнему будет работать на стандартной Ubuntu, способной взаимодействовать с Oracle через TCP.
Я знаю, что такое LXC и чем они отличаются от полноценной виртуализации, такой как KVM / VirtualBox и т. Д., Но мне было интересно, возможно ли это еще.
Спасибо.
Если Oracle Express вам подходит:
Теперь у вас есть deb-пакет Oracle XE 11g. Установите его!
Но есть проблема: / dev / shm. Вот как это исправить:
Запуск Oracle XE: настройка службы oracle-xe
Я использую следующие образ докера с хорошим уровнем успеха.
Заставьте его работать с:
docker pull wnameless/oracle-xe-11g
и
docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
Вот моя вилка:
Вы можете проверить здесь:
https://registry.hub.docker.com/u/sath89/oracle-xe-11g/
https://github.com/MaksymBilenko/docker-oracle-xe-11g
Я могу подтвердить, что Oracle XE работает в Docker. единственная проблема в том, что внутри контейнера shm настроен только на 65356k см. https://github.com/dotcloud/docker/issues/2606 Единственный обходной путь на данный момент - изменить шаблон lxc и перекомпилировать докер (что несложно)
Это определенно реальный подход. Мы используем Ubuntu 14.04 для наших хост-компьютеров и запускаем несколько экземпляров Oracle 11g в контейнерах Docker в целях разработки.
В настоящее время (Docker 1.5) как для 11g, так и для 12c основной проблемой является жестко заданный лимит общей памяти Docker. Выпуск № 2606. В настоящее время для этого есть два обходных пути:
docker run --privileged ...
и перемонтируйте / dev / shm с дополнительной памятью перед запуском экземпляраВы можете использовать OEL 6.5 LXC Linux Containers поверх Ubuntu 14.04, как описано шаг за шагом здесь, в моем блоге:
https://sites.google.com/site/nandydandyoracle/technologies/lxc/oracle-lxc-vlc