Docker: guia do iniciante

Se você já conhece software ou desenvolvimento web há algum tempo, é provável que pelo menos tenha ouvido falar do Docker. Talvez você seja como eu e tenha evitado usá-lo porque parece complicado ou difícil de configurar.


Bem, a boa notícia é que, na verdade, é super simples. Neste artigo, mostrarei algumas maneiras de começar a usar o docker com o que aprendi até agora.

O que é Docker?

Antes de prosseguirmos, vamos definir o que o Docker realmente é. O Docker é um software que permite empacotar um aplicativo, junto com todas as suas dependências, em uma única unidade e executá-lo em um ambiente isolado chamado contêiner.

Isso significa que se alguém, em qualquer lugar, em qualquer máquina, executar esse contêiner do Docker, o aplicativo se comportará da mesma maneira porque tem exatamente o mesmo ambiente.

Um contêiner Docker é um pouco como uma máquina virtual, exceto que cada contêiner realmente compartilha um kernel, o que elimina muito da sobrecarga de criar e executar um sistema operacional virtual inteiro para cada instância.


Por que Docker?

Bem, espero que você já possa ver que há um grande benefício em ter esses contêineres isolados, cada um com seu próprio ambiente. Isso torna todo o ciclo de desenvolvimento e implantação de software muito mais simples, porque, depois de configurar um contêiner, você sabe que seu ambiente não será alterado por fatores externos.

Além de criar aplicativos em contêineres, o Docker também é muito popular para criar testes e integrá-los ao seu fluxo de trabalho de CI / CD . Novamente, isso ocorre porque você pode garantir que cada teste seja executado em um ambiente completamente novo e isolado, de forma que os testes não sejam afetados pelos efeitos colaterais de outros testes.

Por fim, como você pode iniciar e interromper rapidamente os contêineres do docker em tempo real, há muitas oportunidades de fazer coisas realmente interessantes de forma programática com o Docker. Por exemplo, existe uma empresa chamada Entrevista Remota que permite que as empresas definam testes de código para funcionários em potencial. O candidato submete o código online, o software Remote Interview executa alguns testes e o candidato descobre se os testes foram aprovados ou reprovados.

E que tecnologia eles usam para testar o código dos candidatos? Docker, é claro! Cada vez que um candidato envia um novo trecho de código, ele ativa um novo contêiner do Docker para testar seu código. Eles até gentilmente têm um repositório público do GitHub para que você possa ver por si mesmo como funciona.

Exemplos de primeiros passos

Todos os exemplos que dou abaixo são para projetos JavaScript / NodeJs, mas deve ser bastante simples modificá-los para diferentes linguagens / estruturas.

Também presumo que você tenha o Docker instalado em sua máquina. Se você não fez isso, vá fazer isso agora. Página de download do Docker Desktop

Olá Mundo

Qual tutorial de codificação estaria completo sem um exemplo Hello World?

Comece criando um arquivo index.js e dando a ele uma única linha de código:

console.log('Hello World');

Em seguida, no mesmo diretório do seu arquivo JavaScript, crie um arquivo chamado Dockerfile (sim, sem qualquer extensão). Este é o arquivo que será usado para construir a imagem para seu contêiner do Docker. Uma imagem é apenas um modelo para a criação de contêineres Docker. O Dockerfile deve ser assim:

FROM node:latest
WORKDIR /hello-world
COPY ./index.js .
CMD ["node", "./index.js"]

Vamos examinar isso linha por linha.

– Nó FROM: mais recente – O Docker Hub tem milhares de imagens Docker pré-configuradas que podemos usar como base para nossas próprias imagens – então, é provável que você sempre encontre uma imagem base para seu aplicativo. No nosso caso, queremos começar a partir da imagem do Node mais recente como nossa base, que terá tudo configurado para poder executar um aplicativo do Node.

– WORKDIR / hello-world – Define o diretório de trabalho dentro do contêiner para hello-world.

– COPY ./index.js. – copia o arquivo index.js de nossa máquina para o diretório de trabalho do contêiner do Docker.

– CMD [“node”, “./index.js”] – executa o Node com index.js como o ponto de entrada.

Agora precisamos construir nossa imagem. Abra uma janela de console e navegue até o diretório que contém os arquivos index.js e Dockerfile e digite:

docker build -t hello-world .

Isso criará uma imagem Docker com uma tag de hello-world do Dockerfile dentro deste diretório. Agora usamos a tag para dizer ao Docker para executar este contêiner:

docker run --rm hello-world

O sinalizador –rm aqui apenas remove o contêiner após a conclusão da execução. Isso geralmente é uma boa ideia, caso contrário, você acabará com milhares de contêineres ociosos em sua máquina.

Se tudo tiver funcionado, você deverá ver agora Hello World impresso na tela. Parabéns! Agora você executou seu primeiro aplicativo no Docker.

Criação de um contêiner do Docker a partir de um repositório GitHub

Eu criei este para um projeto em que estou trabalhando, em que os usuários podem enviar seu código para teste enviando uma URL de repositório GitHub. Acho que mostra algumas das outras coisas legais que você pode fazer com o Docker também, e espero que seja útil para seus aplicativos também!

Como esse contêiner do Docker precisa ser um pouco mais complexo e dinâmico, escreveremos um script de shell Bash que será executado no contêiner do Docker. Portanto, comece criando um novo diretório e um arquivo chamado docker.sh:

Novamente, vou explicar isso linha por linha.

– # ! / bin / bash – No Linux, isso é conhecido como shebang e apenas informa ao console que este é um script Bash

– repository_url = $ 1 / branch = $ 2 – $ 1 e $ 2 são o primeiro e o segundo argumentos da linha de comando, respectivamente. Aqui, estamos apenas atribuindo-os a variáveis ​​para que fique mais claro o que representam. Quando iniciamos nosso contêiner Docker, passaremos nossa URL do repositório GitHub e o branch que queremos clonar como argumentos para o contêiner.

– git clone … – Clona o repositório Git e verifica o branch desejado. A opção –single-branch significa que apenas esse branch é baixado, o que economiza tempo ao executar o contêiner.

– yarn install / yarn test – Isso pressupõe que o repositório GitHub que clonamos é um projeto Node que tem um arquivo package.json com um script de teste definido. Isso instalará todas as dependências do Node e executará o script de teste. Claro, você poderia pensar em tornar isso mais dinâmico, mas funciona bem para meus propósitos.

No mesmo diretório, precisamos novamente de nosso Dockerfile:

Aqui estou instalando o dos2unix e executando em meu arquivo ./docker.sh. Isso só é necessário se você (como eu) escreveu o script de shell Bash em uma máquina Windows. Isso ocorre porque as terminações de linha precisam ser convertidas do formato Windows para Unix para que o script seja executado corretamente.

Ao especificar o script docker.sh como o ponto de entrada (sem nenhum argumento por enquanto), esse script será executado quando iniciarmos o contêiner do Docker. Também podemos escolher nossos argumentos durante o comando docker run, para que possamos escolher dinamicamente qual repositório testar.

Então podemos executar:

Eu configurei um repositório Github básico que você pode usar neste tutorial . Esperançosamente também ajudará como um ponto de partida para seus próprios projetos também!

Tudo indo bem, você deve ver que o repositório Git foi clonado e os testes do Jest executados no projeto.

Conclusão

Este tutorial forneceu algumas maneiras simples de começar a usar o Docker. Espero que você possa ver que o Docker não é tão assustador afinal, e na verdade é muito simples e direto colocar um contêiner em execução. Claro que há coisas mais complexas que podem ser alcançadas com ele, mas isso serve como um bom ponto de partida em sua jornada no Docker.

Se você achou este tutorial útil, curta e compartilhe-o.

Escrtio por Sam Walpole, Desenvolvedor web Fullstack .NET e JavaScript.

Encontre vagas em tecnologia aqui.

Deixe um comentário

WP2Social Auto Publish Powered By : XYZScripts.com