Combine Docker e Tomcat

Combine Docker E Tomcat



Apache Tomcat é um servidor web de código aberto e contêiner de servlet desenvolvido pela Apache Software Foundation (ASF).

O Tomcat implementa as especificações Java Servlet e JavaServer Pages da Oracle e fornece um ambiente de servidor web Java HTTP puro para o código Java ser executado.







Neste tutorial, aprenderemos como combinar Docker e Tomcat para implantar um aplicativo “hello world” do Tomcat usando o Tomcat como contêiner.



Requisitos:

Para seguir e usar com êxito as instruções e o código fornecidos neste tutorial, certifique-se de ter o seguinte:



    1. Docker Engine instalado em sua máquina host
    2. Instalou o Java JDK em sua máquina para testar seu código Java (opcional)
    3. Um editor de texto para editar o código-fonte e as configurações do Docker

Com os requisitos fornecidos atendidos, podemos prosseguir e aprender como implantar um aplicativo Tomcat usando Docker.





Extraia a imagem do Tomcat no Docker

Felizmente, não precisamos configurar uma imagem base que contenha todas as ferramentas para executar uma aplicação Tomcat. Podemos simplesmente usar a imagem do Tomcat do Docker Hub.

Para extrair a imagem, podemos executar o comando da seguinte forma:



$ Docker puxa Tomcat


Crie um aplicativo Olá Mundo

O próximo passo é criar o aplicativo “Hello World”. Comece criando um diretório para armazenar seu código-fonte e navegue até o diretório.

$ mkdir Olá Mundo && cd Olá Mundo


Dentro do diretório raiz, crie uma pasta webapp e crie uma pasta WEB-INF dentro dela.

Sua estrutura de diretórios deve ficar assim:

Olá Mundo /
└── webapp
└── WEB-INF

3 diretórios, 0 arquivos


Em seguida, navegue até o diretório WEB-INF e crie um arquivo “web.xml” com o seguinte código:

< ?xml versão = '1,0' codificação = 'UTF-8' ? >
< aplicativo web xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: esquemaLocation = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
versão = '4,0' >
< servlet >
< nome do servlet > Olá Mundo nome do servlet >
< classe de servlet > HelloWorldServlet classe de servlet >
servlet >
< mapeamento de servlet >
< nome do servlet > Olá Mundo nome do servlet >
< padrão de URL >/ olá padrão de URL >
mapeamento de servlet >
aplicativo web >


Salve o arquivo e feche o editor.

De volta à janela do terminal, crie um “HelloWorldServlet.java” dentro do diretório WEB-INF/classes.

$ mkdir Aulas
$ tocar HelloWorldServlet.java


Adicione o conteúdo do aplicativo conforme mostrado a seguir:

importe javax.servlet. * ;
importe javax.servlet.http. * ;
importar java.io. * ;

classe pública HelloWorldServlet estende HttpServlet {
public void doGet ( Solicitação HttpServletRequest, resposta HttpServletResponse )
lança ServletException, IOException {
resposta.setContentType ( 'texto/html' ) ;
PrintWriter fora = resposta.getWriter ( ) ;
out.println ( '' ) ;
out.println ( 'Servlet Olá Mundo' ) ;
out.println ( '' ) ;
out.println ( '

Olá, mundo!

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


Isso configura um servlet Tomcat básico que imprime “Olá, mundo”.



Defina o Dockerfile

A próxima etapa para nós é definir o Dockerfile para construir uma imagem personalizada que inclua nosso aplicativo “Hello World”.

Dentro do diretório raiz, crie um novo arquivo chamado “Dockerfile”:







$ tocar ~ / Olá Mundo / Dockerfile


Edite o arquivo e adicione a configuração da seguinte forma:

#define a imagem base do Tomcat
DO Tomcat: mais recente

# Copie a aplicação Hello World para o diretório webapps do Tomcat
CÓPIA DE . / aplicativo web / usr / local / gato / aplicativos da web / meu aplicativo
#Expõe a porta 8080 para Tomcat
EXPOR 8080


Você deve ter o layout do diretório da seguinte forma:

Olá Mundo
├── Dockerfile
└── webapp
└── WEB-INF
├── aulas
│   └── HelloWorldServlet.java
└── web.xml

4 diretórios, 3 arquivos

Construa a imagem

A seguir, construímos a imagem personalizada do Tomcat conforme mostrado no seguinte comando:

$ construção do docker -t aplicativo tomcat .


Execute o contêiner

Assim que tivermos a imagem pronta, podemos executar o contêiner a partir da imagem usando o comando a seguir:

$ execução do docker -d -p 8080 : 8080 --nome tomcat-container tomcat-app


Isso deve criar o contêiner Tomcat a partir da imagem tomcat-app que criamos na etapa anterior e vinculá-lo à porta 8080 na máquina host.

Acesse o aplicativo

Abra um navegador da web e navegue até . Você deverá ver a mensagem “Olá, mundo!” mensagem exibida em seu navegador.

Conclusão

Parabéns! Você implantou com êxito um aplicativo “Hello World” em um contêiner Dockerizado do Tomcat.