‫Ok,
‫então o que eu vou fazer é que eu vou passar por cada um desses serviços com base
‫nessa arquitetura, e eu vou criar este aplicativo sobre o assunto. Na verdade, vou escrever os comandos aqui no readme, porque isso parece
‫ser um lugar lógico para eu fazer isso. E então eu vou cortar e colá-los no
‫meu nó.
‫Se você se lembrar, eu tenho um enxame de 3 nós por aqui. Se eu fizer um nó docker, você
‫verá que eu tenho três nós aqui. Eles são todos nós de gerenciadores.
‫Eu não tenho nenhum recipiente funcionando, e nenhum serviço, obviamente. necessidade e preciso de um volume.
‫Primeiro, eu sei no topo, fala sobre as redes de
‫Então, provavelmente pode tirar as redes do caminho e provavelmente posso conseguir isso. Eu posso digitar a
‫rede docker criar d sobreposição. Lembre-se de que a rede de sobreposição é o único tipo de rede
‫que podemos usar em um Swarm porque a sobreposição nos permite atravessar nós, como se estivessem todos na rede local.
‫E então eu quero chamar isso de backend.
‫E então, eu quero fazer a mesma coisa exata, basta chamar isso de frontend.
‫Agora, não há nada inerentemente especial sobre essas duas redes.
‫um ou outro para ajudar a agir como um pequeno firewall que oferece separação para proteção.
‫Nós apenas vamos segmentar nossos diferentes serviços em
‫Nesta votação, eu sei
‫que preciso fazer um serviço de docker criar, e eu tenho que nomeá-lo, então eu posso também colocar o voto de nome. E então eu tenho que publicar a porta 80 a 80 no
‫recipiente, e tem que estar em uma rede específica. Então, frontend de
‫rede. Preciso de duas réplicas.
‫Então, réplica dois. E então, eu também poderia simplesmente copiar e colar esse nome. Não vai ser chamado de
‫Agora, vou avançar e crie tudo isso antes de implementá-los. voto, ele vai ser
‫Eu realmente vou copiar isso aqui. Este será chamado. chamado de redis. Você não precisa se preocupar em publicar qualquer porto sobre isso.
‫Vai estar na rede da frente. Vamos ver, backend de rede, e
‫Eu quero duas réplicas, e então, eu vou chamar isso de redis três dois é a imagem. Porque uma réplica
‫Aqui, o serviço docker cria o nome do trabalhador, estará em duas redes. Tenho Estou escrevendo o que estou dizendo. depois apenas uma réplica. é padrão,
‫que fazer frontend de rede e. gritos. na verdade eu não preciso especificar uma réplica e não especifico nenhuma porta.
‫Eu acho, é só isso que eu preciso. Eu só preciso copiar a imagem.
‫Ok, o serviço docker cria o nome do backend da rede db.
‫Veja, uma réplica.
‫Oh, eu preciso fazer esse volume.
‫Aqui está a questão do volume. O comando -v não é compatível com os serviços docker. Porque, por várias razões, os
‫serviços serão mais complexos do que talvez o seu docker típico seja executado.
‫E houve problemas e limitações com o -v de volta no dia.
‫Então, Docker aprendeu disso e melhorou o formato. Mas acontece um pouco mais detalhado e talvez um pouco mais difícil lembrar
‫o formato começando.
‫Também não está bem documentado ainda na Documentação
‫do Docker porque tem menos de um ano como comando. Então, vamos apenas copiar e colar isso. fazem parte de um único comando de
‫montagem e os mínimos são um tipo, uma fonte e um destino.
‫Se não faz sentido para você, basicamente, é essa lista de valores que
‫Há também outras coisas que você pode adicionar, mas estes são os únicos que precisamos neste cenário.
‫E você pode ver que minha fonte é apenas um volume nomeado, porque eu não tenho nenhum slashes nela.
‫E, se tivéssemos barras, teria sido uma montagem de ligação e teríamos
‫que especificar um tipo diferente.
‫Então, basta aqui, --mount volume do tipo, dados db da fonte, alvo.
‫Eu acho que está correto.
‫E então você pode apenas, postgres 9. 4.
‫E então o último é o aplicativo de resultados.
‫Então, o serviço docker cria um backend de rede de resultados de nome.
‫Publique a porta. Nós vamos usar 5001 para a porta 80 no recipiente.
‫Eu só posso executar um deles. Por sinal, a única razão pela qual estamos executando um desses é realmente um problema pouco conhecido neste aplicativo, é que isso realmente está
‫usando o WebSockets, Assim, na malha de roteamento, realmente não faz o
‫e o WebSockets é algo que requer uma conexão persistente. WebSockets ainda, porque ele continuará alterando você de um lado para outro entre os contêineres e que o WebSocket precisa ser um recipiente específico persistentemente.
‫Então, com este aplicativo o que devemos
‫ter realmente, é um proxy na frente dele, mas não está neste aplicativo ainda assim, provavelmente, em uma versão posterior, ele irá atualizá-lo e corrigi-lo para que possamos ter um proxy.
‫Dessa forma, pode ser redundante e com
‫certeza você está chegando ao recipiente direito. Nós vamos copiar
‫e colar isso até o fim. Acabei de perceber que estou perdendo o último valor nesses.
‫Ok, e então vou começar no topo e simplesmente copiar e colar. Já criou as redes.
‫Sim, isso precisa ser réplicas. Deixe-me atualizar isso aqui.
‫Réplicas. Ok, vamos criar os redis. Aqui vamos nós.
‫Tudo bem, criou aquele. Agora, você perceberá, por sinal, que eu voltei um ID de serviço, mas isso não significa
‫que o serviço seja realmente implantado corretamente.
‫Vamos ver isso em um minuto.
‫Deixe-me obter o resto desses lá dentro.
‫Tudo bem.
‫Agora que temos isso, devemos ser capazes de fazer o resto dos nossos comandos aqui. Então, o serviço docker nos mostra
‫todos os cinco deles. E você notará que os números das réplicas coincidem.
‫Esse é um bom sinal.
‫Isso significa que um foi criado com sucesso.
‫E se eu quisesse cavar mais fundo, eu poderia fazer um serviço de docker ps em cada um.
‫Tudo bem, então está funcionando 28 segundos.
‫Redis funcionou um minuto. db está executando 53 segundos. voto.
‫trabalhador.
‫E você verá aqui no trabalhador, que temos uma tarefa errada que é desligada e que está em execução.
‫Isso foi executado por 47 segundos.
‫Ok, então, eu realmente sei por que isso aconteceu, mas você pode não saber, então talvez devêssemos fazer um registro.
‫Agora isso está no node2.
‫através de uma configuração opcional no Docker, é realmente fazer o novo recurso experimental, logs do serviço docker.
‫Uma característica experimental que você pode ativar O que realmente puxa os logs de muitos nós diferentes.
‫Espero que ele seja lançado na próxima versão do Docker no final deste ano.
‫Mas, por enquanto, é experimental. Então eu tive que habilitá-lo dentro do log doemon docker etc, ou daemon.
‫arquivo json. E, apenas para que você saiba, é assim que você habilitará um experimental. registra o Você pode ver aqui, este é um, e Na verdade, sim.
‫Isso não faz parte disso. E esta é essa, em particular, vejamos, estes são dois diferentes. o número muda. Isso é tudo aqui.
‫Isso é apenas algo que fiz, apenas para que eu pudesse mostrar isso de maneira muito rápida. oops. trabalhador. Ele diz que nenhum desses dispositivos ou endereço.
‫Você pode estar vendo este erro e você está pensando, eu não sei por que isso está acontecendo? Então, o que isso basicamente significa
‫Podemos ver esse registro. Então, podemos fazer um trabalhador de log do serviço docker. é que eu criei um serviço que estava procurando um registro de DNS que não existisse porque ainda não criei o outro serviço. falhar porque o Docker pode reiniciar e redistribuir as coisas corretamente até que os aplicativos não falhem.
‫E fez o que deveria fazer em "Dockerland", que
‫é quando ele tem um erro como esse, o aplicativo deve E assim que eu lanço todos os meus
‫serviços, tudo parou de bater e tudo agora funciona.
‫E podemos dizer isso apenas voltando e olhando para o trabalhador ps. Vemos que está sendo executado com sucesso
‫por três minutos.
‫Então vamos dar uma olhada no nosso aplicativo.
‫Se eu apenas puxar o endereço IP, eu deveria pegar os cães e gatos. Eu vou votar em gatos.
‫E então, se eu for nesse mesmo IP na porta 5001, eu deveria ver o aplicativo de resultados. o aplicativo.
‫Esse é
‫Agora sabemos que está funcionando, porque a única maneira que isso pode mudar é se isso acontecer até que ele seja
‫atrapalhado pelo redis e depois processado pelo trabalhador e, em seguida, coloque o banco de dados.
‫Então, sabemos que cada um dos nossos serviços de aplicativos pode conversar um com o outro. E podemos
‫observar os logs se quisermos.
‫Mas, essa é a demo.
‫