В одном из моих предыдущих постов я показал, как запустить приложение ADF Essentials на Tomcat в док-контейнере. Я использую этот подход в первую очередь для примеров приложений в качестве удобного способа поделиться проверкой концепции. В этом посте я собираюсь описать, как обогатить контейнер докера базой данных Oracle, чтобы мои примеры могли быть осведомлены о БД.
Исходный образ Tomcat, который я разрабатываю в этих статьях, основан на Debian Linux. Я действительно не хочу получать удовольствие от установки и настройки Oracle DB в Debian Linux, и, конечно, я не буду описывать это в этом посте. Я собираюсь использовать технику Docker-in-Docker. Итак, я собираюсь взять контейнер из предыдущего поста с предварительно настроенным ADF Tomcat, установить среду выполнения Docker в этом контейнере, извлечь образ БД Oracle и запустить его внутри контейнера. Существует множество дискуссий о методике Docker-in-Docker, в которой утверждается, достаточно ли она эффективна или нет. Я думаю, что я бы не пошел с этим подходом в производстве, но для примеров приложений я полностью согласен с ним.
Давайте начнем.
1. Запустите новый контейнер из изображения, сохраненного в предыдущем посте :
| 1 | docker run --privileged -it -p 8888:8080-p 1521:1521-p 5500:5500--name adftomcatdb efedorenko/adftomcat bash | 
Обратите внимание на опцию, привилегированную в команде docker. Эта опция необходима, чтобы контейнер мог запускать движок Docker внутри себя.
2. Установите двигатель Docker в контейнер:
| 1 2 3 | curl -fsSL get.docker.com -o get-docker.shsh get-docker.sh | 
После успешной установки двигатель Docker должен запуститься автоматически. Это можно проверить с помощью простой команды docker:
| 1 | docker ps | 
Если двигатель не запустился (как это произошло в моем случае), запустите его вручную:
| 1 | service docker start | 
3. Войдите в Docker Hub:
| 1 | docker login | 
И предоставьте свои учетные данные Docker Hub.
4. Потяните и запустите официальный образ БД Oracle :
docker run –detach = true –name ADFDB -p 1521: 1521 -p 5500: 5500 store / oracle / database-enterprise: 12.2.0.1
Готово!
  Теперь у нас есть док-контейнер с предварительно сконфигурированным Tomcat для запуска приложений ADF и с Oracle DB, работающим в контейнере внутри контейнера.  Мы можем подключиться к БД из обоих 
  Контейнер adftomcatdb и хост-компьютер как sys/Oradoc_db1@127.0.0.1: 1521: ORCLDB как sysdba 
Давайте сохраним нашу работу в образе докера, чтобы мы могли использовать ее позже.
5. Создайте сценарий запуска оболочки /user/local/tomcat/start.sh в контейнере со следующим содержимым:
| 1 2 3 4 5 6 7 8 9 | #!/bin/bash service docker start docker start ADFDB catalina.sh start exec "$@" | 
6. Удалите папку времени выполнения Docker в контейнере:
| 1 | rm -r /var/lib/docker/runtimes/ | 
7. Остановите контейнер с хост-терминала:
| 1 |  docker stop adftomcatdb | 
8. Создайте новый образ:
| 1 | docker commit adftomcatdb efedorenko/adftomcatdb:1.0 | 
9. Запустите новый контейнер из созданного изображения:
| 1 | docker run --privileged -it -p 8888:8080-p 1521:1521-p 5500:5500--name adftomcatdb_10 efedorenko/adftomcatdb:1.0./start.sh bash | 
10. Наслаждайтесь!
Это оно!
| Опубликовано на Java Code Geeks с разрешения Евгения Федоренко, партнера нашей программы JCG .  См. Оригинальную статью здесь: Запуск Tomcat и Oracle DB в контейнере Docker. Мнения, высказанные участниками Java Code Geeks, являются их собственными. |