Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Docker Containers

Rodrigo
September 04, 2020

Azure Docker Containers

An introduction about how to deploy containers with Build and Release and Deploy on Azure.

Rodrigo

September 04, 2020
Tweet

Other Decks in Technology

Transcript

  1. Na sua máquina funciona?, leve ela para a nuvem! UMA

    ABORDAGEM SIMPLES E DIRETA SOBRE DOCKER CONTAINERS COM BUILD E RELEASE NA AZURE.
  2. Começando pelo começo O que é Docker afinal? Docker possibilita

    o empacotamento de uma aplicação ou ambiente dentro de um container, se tornando portátil para qualquer outro host que contenha o Docker instalado. A grosso modo o Docker container "liberta" a aplicação do ambiente em que está inserido. A partir do momento em que seu pacote está configurado e implementado, ele pode ser replicado quantas vezes e onde for necessário.
  3. Passos para a criação de um container Imagem Base •

    python:3.6 • redis • postgres Dependências do S.O. • RUN apt-get install python3-dev Diretório de trabalho • WORKDIR /app/ Dependências da aplicação • RUN pip install –r requirements.txt Cópia da aplicação • ADD . /app/ Comando inicial • CMD gunicorn app.wsgi -b 0.0.0.0:8000
  4. Docker Compose Docker compose é a junção de um ou

    mais containers/serviços que rodam na mesma intância e portanto conseguem se comunicar. Essa configuração é feita pelo arquivo docker.compose.yml que contém a "receita" de como tudo deve se relacionar.
  5. HANDS-ON • Clone o aplicativo de exemplo em: • $git

    clone https://github.com/wilson-boca/counter-flask-demo.git • Digite: • $cd counter-flask-demo • $docker build -t counter-flask . • $docker run counter-flask • Abra seu browser no endereço: http://0.0.0.0:8000
  6. Commandos Rodar como daemon, nome e porta: $docker run -d

    --name my-flask -p 8000:8000 counter-flask Listar imagens: $docker ps -a Parar: $docker stop CONTAINER ID ou NAME Iniciar: $docker start CONTAINER ID ou NAME Remover: $docker rm –f CONTAINER ID ou NAME Bash no container: $docker exec -it my-flask bash Verificar saída: $docker attach my-flask Referência: https://docs.docker.com/engine/reference/commandline/docker/
  7. A cereja do bolo Agora que você já é um

    especialista em comandos, podemos ir para uma ferramenta gráficaincrívele gratuita. Estamos falandodo PORTAINER e para instalar/rodaré muito simples. Execute as linhasde comandoabaixo: $ docker volume create portainer_data $ docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock-v portainer_data:/data portainer/portainer Abra o seu browser no endereçoconfigurado: http://0.0.0.0:9000 Para maiores informaçõesvisite: https://www.portainer.io/
  8. Container Registry Todo container precisa estar disponível na nuvem para

    que possa ser criado, o repositório mais famoso é claro o Docker Hub, mas a Azure nos oferece um serviço semelhante chamado Container Registry. Vamos aos passos para a criação do mesmo, clique em Criar um recurso e em seguida digite container registry no campo de pesquisa. Após a criação um passo importantíssimo é habilitar o acesso do Usuário administrador. Insirasuas credênciaisde assinatura, grupo de recurso, etc e finalmente um nome que ainda não esteja sendo utilizado. Clique em Revisar+ criar.
  9. Bora pra nuvem Sem maisdelongasvamos subir nossocontainer pra nuvem que

    é o que interessa! O primeiropasso é criarum Pipeline naAzure DevOps indicandoo repositórioque contém o nossoprojeto com seu respectivo Dockerfile, no nossocasoGitHub mas pode ser Azure Repos, etc. Vamos escolher Build and push, pois queremos criaruma imagem e publicarno nosso repositório.
  10. Bora pra nuvem II Selecionesua subscription, façao login e selecioneo

    seu container registry. Agora digite um nome para a sua imageme também onde se encontra Dockerfile no nosso projeto, geralmente ele consegue encontrar sozinho. Automáticamente nosso arquivoYAML será criadocom todos os passos necessários. Vamos apenas acrescentara TAG latest. Procure por tags adicionelatest conformeabaixo e cliquemem Run.
  11. Bora pra nuvem III Vamosagora criar o nossoWeb App. Para

    isso clique em Criar um recurso e no campo de busca digiteWeb App for Containers. Novamente selecionesua assinatura(subscription), preenchaas demaisinformaçõese escolhaum bom nome para o seu site. É muito importante garantirque o Publish* está com a opção Docker Container marcada. Clique em Avançar: Docker > para configurarmosa origem da imagem. Revisar + criar, criar e vamos ver se funcionou....
  12. Bora pra nuvem IV No quarto e último passo vamos

    criar o deploy da nossaimagem para o Web App de forma automatizada. Vamos então editar o nossoPipeline para adicionaro códigonecessáriono arquivoYAML. Clique na última linhaem mostrar assistentee no campo de busca do assistente digiteAzure Web App for Containers conforme abaixo: Selecionea inscriçãoe autorize, escolhao Web App criadoanteriormente. No Image name copie do YAML as variáveis do container registry, repositórioe tag. $(containerRegistry)/$(imageRepository):latest Configuration File é usado para docker-compose somente, deixe em branco. Clique em Add, salve e rode novamente. Por segurança irá pedir sua permissão, issoapenas na primeiravez.
  13. A prova de fogo Para garantir que tudo está 100%

    funcionando vamos modificar algo no código-fonte, comitar e fazer um Push para a branch Master do nosso projeto no GitHub. Nossa Pipeline deve rodar automáticamente recriando nossoWeb App. Podemos docker-compose em uma próxima oportunidade.