Объедините Docker и Tomcat

Ob Edinite Docker I Tomcat



Apache Tomcat — это веб-сервер и контейнер сервлетов с открытым исходным кодом, разработанный Apache Software Foundation (ASF).

Tomcat реализует спецификации Java Servlet и JavaServer Pages от Oracle и предоставляет чистую среду веб-сервера HTTP HTTP для запуска кода Java.







В этом руководстве мы узнаем, как объединить Docker и Tomcat для развертывания приложения Tomcat «hello world», используя Tomcat в качестве контейнера.



Требования:

Чтобы успешно следовать и использовать инструкции и код, представленные в этом руководстве, убедитесь, что у вас есть следующее:



    1. Установлен Docker Engine на вашем хост-компьютере.
    2. Установите Java JDK на свой компьютер для проверки кода Java (необязательно).
    3. Текстовый редактор для редактирования исходного кода и конфигураций Docker.

При соблюдении данных требований мы можем продолжить и научиться развертывать приложение Tomcat с помощью Docker.





Извлеките образ Tomcat в Docker

К счастью, нам не нужно настраивать базовый образ, содержащий все инструменты для запуска приложения Tomcat. Мы можем просто использовать образ Tomcat из Docker Hub.

Чтобы получить изображение, мы можем запустить команду следующим образом:



$ докер вытащить кота


Создайте приложение Hello World

Следующим шагом будет создание приложения «Hello World». Начните с создания каталога для хранения исходного кода и перейдите в него.

$ мкдир Привет, мир && CD Привет, мир


Внутри корневого каталога создайте папку веб-приложения и внутри нее папку WEB-INF.

Структура каталогов должна выглядеть так:

Привет, мир /
└── веб-приложение
└── WEB-INF

3 каталоги, 0 файлы


Затем перейдите в каталог WEB-INF и создайте файл «web.xml» со ​​следующим кодом:

< ?xml версия '=' '1,0' кодирование '=' «УТФ-8» ? >
< веб-приложение xmlns '=' 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: кси '=' 'http://www.w3.org/2001/XMLSchema-instance'
кси: схемаМестоположение '=' 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
версия '=' '4.0' >
< сервлет >
< имя-сервлета > Привет, мир имя-сервлета >
< класс сервлета > HelloWorldServlet класс сервлета >
сервлет >
< отображение сервлетов >
< имя-сервлета > Привет, мир имя-сервлета >
< URL-шаблон >/ привет URL-шаблон >
отображение сервлетов >
веб-приложение >


Сохраните файл и закройте редактор.

Вернувшись в окно терминала, создайте «HelloWorldServlet.java» внутри каталога WEB-INF/classes.

$ мкдир занятия
$ трогать HelloWorldServlet.java


Добавьте содержимое приложения, как показано ниже:

импортируйте javax.servlet. * ;
импортируйте javax.servlet.http. * ;
импортировать java.io. * ;

публичный класс HelloWorldServlet расширяет HttpServlet {
общественная пустота ( Запрос HttpServletRequest, ответ HttpServletResponse )
выдает ServletException, IOException {
ответ.setContentType ( 'текст/html' ) ;
PrintWriter out = response.getWriter ( ) ;
out.println ( '' ) ;
out.println ( 'Сервлет Hello World' ) ;
out.println ( '<тело>' ) ;
out.println ( '

Привет, мир!

'
) ;
out.println ( '' ) ;
}
}


Это устанавливает базовый сервлет Tomcat, который печатает «Hello world».



Определите файл Dockerfile

Следующим нашим шагом будет определение Dockerfile для создания собственного образа, включающего наше приложение «Hello World».

Внутри корневого каталога создайте новый файл с именем «Dockerfile»:







$ трогать ~ / Привет, мир / Докерфайл


Отредактируйте файл и добавьте конфигурацию следующим образом:

# устанавливаем базовое изображение Tomcat
ОТ кота: последний

# Скопируйте приложение Hello World в каталог веб-приложений Tomcat.
КОПИРОВАТЬ. / веб-приложение / usr / местный / Кот / веб-приложения / мое приложение
# Открыть порт 8080 для Tomcat
РАЗОБЛАЧАТЬ 8080


У вас должна получиться следующая структура каталога:

Привет, мир
├── Dockerfile
└── веб-приложение
└── WEB-INF
├── занятия
│   └── HelloWorldServlet.java
└── web.xml

4 каталоги, 3 файлы

Создайте образ

Затем мы создаем собственный образ Tomcat, как показано в следующей команде:

$ сборка докера приложение tomcat.


Запустите контейнер

Когда образ готов, мы можем запустить контейнер из него с помощью следующей команды:

$ запуск докера -п 8080 : 8080 --имя Tomcat-контейнер Tomcat-приложение


Это должно создать контейнер Tomcat из образа tomcat-app, который мы создали на предыдущем шаге, и привязать его к порту 8080 на хост-компьютере.

Доступ к приложению

Откройте веб-браузер и перейдите к . Вы должны увидеть надпись «Hello, World!» сообщение, отображаемое в вашем браузере.

Заключение

Поздравляем! Вы успешно развернули приложение «Hello World» в контейнере Dockerized Tomcat.