‫Nós conversamos anteriormente sobre o arquivo Docker Compose YAML e nesta palestra, vamos falar
‫sobre a linha de comando compor. Os requisitos para esta palestra são como o resto desta seção em
‫que você realmente precisa conhecer imagens e contêineres, e como usá-las e os conceitos em torno delas das seções anteriores, para que você possa
‫usar todas as que estão dentro do comando de compor e a YAML Arquivo. A ferramenta de linha de comando
‫Docker Compose é realmente separada da ferramenta Docker.
‫Na verdade, é um binário separado. Se você estiver no Docker para Windows ou Docker para
‫Mac, ele realmente vem acompanhado disso.
‫Se você também usa a caixa de ferramentas no Windows 7, ela se agrupa com isso.
‫Mas se você estiver no Linux, você deve fazer o download separadamente e você pode obtê-lo no GitHub. com / docker / compose, mas
‫você também pode apenas buscá-lo no Google, e haverá um link nas referências
‫para esta seção.
‫Mas devo declarar muito rápido que não foi projetado para ser uma ferramenta de produção.
‫É super ideal para o desenvolvimento local e teste as coisas de forma muito rápida que, de outra forma, seria complexo
‫para digitar um monte de comandos da linha de comando. Dois comandos comuns que usamos serão o
‫compilador docker, o que é provavelmente o que você vai digitar 90% do tempo.
‫É um balcão único.
‫É basicamente um único comando para fazer tudo no arquivo de composição, incluindo criar volumes, criar redes, iniciar todos
‫os contêineres com todas as suas opções de configuração. Então, para limpar quando você terminar,
‫o
‫docker compõe para baixo, que muitas pessoas realmente se esquecem de fazer,
‫realmente irá limpar depois de você. Ele se livrará dos recipientes, removerá as redes e os volumes que não são mais necessários.
‫Isso permite que você, com estes dois comandos, entre rapidamente e fora de diferentes ambientes para o desenvolvimento.
‫Aqui é onde eu realmente chamo a atenção dos desenvolvedores que são usados ​​para usar o
‫vagabundo e outras ferramentas para personalizar ambientes complicados localmente que precisam para o desenvolvimento.
‫Uma vez que eu mostro Docker Compose e o arquivo de composição e como é fácil usar junto com
‫um Dockerfile, ele realmente começa a clicar neles para que isso possa ser uma maneira melhor e uma maneira mais confiável de
‫configurar seus ambientes.
‫E não requer tempo para configurar máquinas virtuais diferentes
‫ou a complexidade de gerenciar um ambiente de máquina virtual.
‫sistema e as máquinas virtuais corretas baixadas e os complementos corretos , e todas as coisas que normalmente eles teriam que criar um ambiente
‫replicado para, com o Docker Compose, é tão fácil quanto clonar o ambiente que tem seu arquivo de composição
‫de algum valor em algum lugar e, em seguida, executar o comando de compilação do docker.
‫Apenas para lhe dar um pouco de sabor, se você
‫tivesse um projeto onde você tivesse o típico processo de onboard novo do desenvolvedor, era tudo sobre aprender a obter
‫as ferramentas certas para o seu
‫Pode ser assim tão fácil.
‫Vamos brincar e brincar. Estou no diretório da amostra 2. O diretório da amostra 1
‫foi simplesmente alguns exemplos visuais que mostramos na última palestra.
‫Mas neste, poderemos realmente executar esse e obter uma saída rápida.
‫Eu apenas vou fazer um docker compor.
‫Bem, na verdade, antes de fazer isso, deixe-me mostrar-lhe o que é.
‫Isso tem dois serviços ou dois contêineres, e o primeiro é um servidor Nginx configurado
‫como proxy neste caso.
‫E isso vai estar a ouvir na minha porta 80 na minha máquina local.
‫Você notará que há um comando de volume lá onde eu realmente fiz uma montagem de ligação em um arquivo neste
‫diretório chamado arquivo de configuração nginx, e é realmente um pequeno arquivo muito simples.
‫Não é necessariamente importante que saibamos que esse arquivo funciona ainda. Apenas mostra como, neste caso, eu realmente
‫estou levando um arquivo no meu ambiente local. que armazena esses arquivos de configuração para mim.
‫Digamos que este diretório é um repositório Git Isso me permite mapear esse arquivo no recipiente e, na verdade, no final,
‫você verá que ele diga 'ro', o que significa somente leitura, o que significa que não posso alterá-lo no contêiner.
‫Isso não é necessariamente necessário aqui. Eu só queria mostrar-lhe que é
‫assim que você faria isso neste caso. Esse arquivo de configuração está realmente dizendo
‫ao Nginx, "em vez de
‫ser um servidor web, eu gostaria que você fosse um proxy reverso e se sentasse na frente de outro
‫servidor", que neste caso estamos chamando nosso servidor web, com seu serviço nome, e está executando o servidor Apache 2, que é a imagem
‫httpd do repositório de imagens oficial no Docker Hub.
‫Você também pode ver, no topo, especifico uma versão aqui. É assim que eu faria isso.
‫Dentro da linha da imagem.
‫Então, o que deve acontecer é quando eu escrevo este docker compor, ele deve iniciar ambos os contêineres. Deve criar uma rede
‫privada para os dois.
‫Ele irá ligar automaticamente esse arquivo.
‫Isso abrirá a porta, e ele começará a despejar registros na minha tela.
‫Você verá como, segundo ele, criou esses dois contêineres. "Na verdade, está
‫criando a rede.
‫Você notará no meu arquivo, não especificou uma área de redes ou uma área de volumes porque elas não
‫são realmente necessárias.
‫Eles só são necessários se eu precisar fazer algumas coisas personalizadas na rede, como talvez troque os endereços IP padrão
‫ou mude o driver de rede que é usado.
‫Ou no caso de volumes, posso criar volumes nomeados, ou usar um driver de volume diferente, e
‫entraremos em tudo isso em seções avançadas.
‫Para que você saiba, é assim que esses arquivos podem ser simples.
‫Você normalmente não precisa de tudo isso.
‫Esses recursos estão lá se você precisar deles, mas, geralmente, esses comandos muito simples, como este, irão
‫fazer você ir.
‫O que eu fiz? Este é agora meu servidor Apache e meu servidor Nginx.
‫Você notará que os registros estão realmente coloridos aqui.
‫Essa é uma característica legal da Compose, que você não precisa necessariamente sair da caixa com
‫o Docker e que irá registrar todos os contêineres que está sendo executado na tela em primeiro plano.
‫Eu sempre posso fazer o mesmo que eu com o Docker e executar o docker
‫compor -d, o que o executará em segundo plano. ou testando coisas localmente, que tenho meus logs diretamente na tela.
‫Mas é bom ver quando estou desenvolvendo
‫Se eu pular para o meu navegador, e depois vá para o localhost, você verá que ele diz: "Isso funciona. "Na verdade, o servidor
‫Apache responde, não o servidor Nginx.
‫O tráfego está passando pelo proxy inverso Nginx.
‫Está repetindo o tráfego para o servidor Apache. O servidor Apache está respondendo com seu
‫arquivo HTML básico padrão porque não mudamos nada.
‫Então o Nginx está repetindo-o de volta para mim.
‫Então, é seu servidor web básico, configuração de proxy da Web.
‫Você pode dizer que o tráfego bateu em ambos. Eles realmente funcionam através do
‫proxy porque o
‫proxy é realmente uma cor diferente aqui. Os logs estão sendo lançados aqui com uma cor aleatória para cada recipiente na minha configuração para
‫que eu possa facilmente ver o que está acontecendo.
‫Se eu acertar atualizar várias vezes, você veria o tráfego aparecer. Em seguida, está atingindo primeiro o proxy e, em
‫seguida, o servidor web backend.
‫Se eu quisesse parar isso aqui, eu pressionaria o Controle c para parar a composição na minha tela.
‫Eu poderia realmente executá-lo novamente com o -d para executá-lo em segundo plano.
‫Você pode ver aqui que posso atualizá-lo e ainda está lá. Eu posso fazer um docker compor logs para ver a mesma saída de
‫logs que eu vi há algum tempo.
‫Muitos dos comandos que você pode usar no Docker também estão no Docker Compose. Realmente o que Compose está apenas
‫fazendo é falar com a API do Docker em segundo
‫plano em nome da CLI do Docker. É como um substituto para o Docker CLI ainda conversando
‫com a API do servidor Docker no backend.
‫Claro, a grande ajuda aqui, o docker compõe ajuda, mostra-me todos os comandos que posso executar.
‫ao comando docker apenas usando o contexto da configuração do arquivo de composição.
‫Você verá que muitos deles se parecem realmente familiares porque são o equivalente
‫Eu quero limpar tudo isso porque eles ainda estão correndo. Eu posso fazer um docker compor aqui, o que me mostrará que ambos
‫os meus contêineres estão sendo executados.
‫Eu posso fazer um docker compor top para realmente listar todos os serviços executados dentro deles em
‫uma boa saída formatada.
‫Isso é bem legal.
‫Então, finalmente, eu posso fazer um docker compor para baixo para parar e limpar minhas coisas que acabei de começar.
‫Você verá que está me dizendo o que é feito lá. Limpei tudo.
‫Tão bom.
‫Isso é apenas um pouco de gosto.
‫Vamos usar o Docker Composto muito durante o resto deste curso
‫para o desenvolvimento local e testes. Em seguida, continuaremos usando os arquivos do Docker Compose à
‫medida que transição para as preocupações de produção sobre como implantamos ambientes complexos com um arquivo YAML simples.