Docker é um software que reduz a complexibilidade do setup ao permitir que configuremos containers, que funcionam como servidores para executar nossas aplicações. Com facilidade, podemos criar ambientes **independentes que operam em diversos Sistemas Operacionais, o que torna os projetos mais **eficientes.
Considere o seguinte: um projeto pode ter muitos requisitos para funcionar em sua máquina. Isso pode resultar em perda de tempo ao instalar e configurar todo o ambiente necessário. Com o Docker, você pode simplesmente pegar uma **imagem **pronta para executar o projeto.
Para aprofundarmos nosso conhecimento em Docker, é crucial compreender duas partes essenciais: os Containers e as Imagens. São elementos fundamentais para o funcionamento eficaz do Docker.
Container
Um container é um conjunto de código capaz de executar uma ação, como rodar uma aplicação em Node.js, PHP ou Java. Para serem executados, os containers fazem uso de imagens.
Imagem
Uma imagem é o "projeto" que será executado pelo container. Todas as instruções necessárias para a execução estão declaradas dentro dessa imagem.
Na Prática
Para você entender melhor, vamos criar um simples container, e nele terá uma simples imagem com uma aplicação em NodeJs ( vou considerar que já tenha o docker instalado em sua maquina, caso não tenha, siga: https://www.docker.com/).
Primeiro, precisamos iniciar uma aplicação em nodeJs, pra isso,
em uma pasta, utilizaremos o comando: npm init
.
Se tudo der certo, agora temos um arquivo package.json
em nosso projeto, mas agora precisamos instalar o Express para criar nosso servidor. Para isso, rodamos o comando: npm install express
.
Agora com tudo instalado, iremos criar um simples servidor utilizando o express. vamos criar um arquivo com qualquer nome, (eu irei chamar de app.js
). Nele vamos adicionar a implementação para criar o servidor.
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Olá minha Imagem')
})
app.listen(port, () => {
console.log('Executando na porta:', port)
})
Pronto, o nosso servidor já está funcionando, mas precisamos falar sobre o docker, e onde ele se encaixa nisso.
Pra começar, precisamos criar um arquivo dockerfile
, arquivo de configuração para definir as instruções necessárias para criar uma imagem Docker.
Primeiro, precisamos entender o que contem no corpo desse arquivo, e qual a utilidade de cada camada.
FROM: Imagem base
WORKDIR: Diretório da aplicação
EXPOSE: Porta da aplicação
COPY: Arquivos que precisam ser copiados
CMD: Define o comando padrão a ser executado durante a implantação de uma instância da imagem do contêiner.
Claro que existem outras camadas que podem ter no dockerfile, mas para este exemplo, essas são as camadas básicas para criar nossa imagem.
No exemplo abaixo, iremos criar um dockerfile de acordo a nossa aplicação:
FROM node
WORKDIR /app
COPY package*.json .
run npm install
COPY . .
EXPOSE 3000
CMD [ "node", "app.js" ]
Agora, para criar essa imagem, precisamos rodar o comando de build. Em um terminal, dentro do local onde tem o dockerfile, rodamos o comando: docker build .
. Isso irá criar uma imagem do docker, baseado na sua aplicação.
Para rodarmos nossa imagem em um container, basta rodarmos o comando: docker run -p 3000:3000 [IMAGE ID]
.
Importante lembrar que, a primeira porta é onde irá rodar o docker, e a segunda porta é a da sua aplicação.
Tudo pronto. Agora podemos compartilhar essa imagem com outros desenvolvedores, e eles não vão precisar passar pelo processo de criação do servidor, pois a imagem já está configurada pra isso.
Conclusão
O Docker simplifica o desenvolvimento e execução de aplicações através da utilização de containers, proporcionando portabilidade e eficiência.
Top comments (0)