Salve, 10 Beleza! Continuando a nossa saga aqui no nosso módulo de Docker, o próximo módulo de rede que nós vamos ver é o host, que eu já tinha falado para vocês, que é o mais performático, porque ele não vai criar essa outra camada ali, que é o bridge, que vai fazer o encaminhamento, tem várias coisas que acontecem, então a gente acaba tornando a comunicação um pouco mais lenta. Então, o host vai usar a própria interface de rede da máquina. Ela não vai fazer aquele isolamento com o namespace que a gente viu lá no começo do curso. Então, bora aqui para o VS Code. Vamos ver isso na prática. Deixa eu parar isso que eu estou rodando aqui. vamos ver isso na prática deixa eu parar isso que eu estou rodando aqui então o modo na verdade host ele é até mais simples do que a gente imagina vamos rodar aqui o NGINX uma SQL pode ser uma SQL mesmo pode ser uma SQL aí Pode ser uma SQL mesmo. Deixa ele inicializar. Deixar tudo prontinho aqui, rodar o servidor lá na porta 3306. Deixa ele mostrar o Ready for Connections. Pronto. Então, pegando aqui um outro terminal, vamos fazer um dock.ps. Aqui ele não vai habilitar a porta. A gente não consegue ver a porta, mas ele está na 3306. Se eu pegar esse mesmo comando e fazer a execução novamente, olha o que vai acontecer. Na verdade, deu erro normal por conta do content, vamos colocar um 2 aqui acho que no caso de uma SQL ele não vai dar o erro por conta da porta ou vai? Ah não, vai. Eu achei que ele não ia dar que eu sei que o Nginx daria porta. Ou vai? Ah, não, vai. Eu achei que ele não ia dar. Eu sei que o Nginx daria. Está vendo que ele deu o erro aqui, que ele foi tentar fazer um bind com a porta, porque a gente tem um processo que vai alocar ali numa porta, ele vai falar que a porta já está em uso. Então, habilitando o host, eu estou utilizando a interface, no caso aqui do próprio WSL, eu só posso ter um processo usando uma porta. Mas, quando a gente trabalha com namespace, como eu tenho um novo contexto, eu posso lá usar as portas e agora eu não posso usar mais. Então, dessa forma aqui, é muito mais performático. Vamos ver como que se trabalha com isso no Docker Compose. Vou pegar esse mesmo projeto que a gente tem aqui. E aí vamos habilitar o host aqui. Então, na verdade, porta é que nem... Você não publica a porta É a porta que está rodando ali É que vai ficar exposta mesmo Então vamos tirar essa network também aqui Vamos tirar isso aqui também Então o modo network host Ele fica direto aqui. A gente coloca host. Então, eu vou habilitar em todos. Ao fazer isso, o que vai acontecer? Vamos entender as consequências disso aqui. Quando eu falo consequências, é o que vai acontecer. Então, eu vou ter local host na porta 3000 rodando por padrão. Aqui eu vou ter localhost mesmo na porta 80. E localhost na porta 3306. Todo mundo com host. Então aqui no caso do Nginx, do arquivinho aqui, está errado, não é app mais, é localhost. Na hora de conectar com o banco de dados vai ser localhost aqui. Eu acabei reduzindo o health check para a gente poder testar. Eu reduzi como eu tinha voltado. Eu vou colocar 20 segundos só aqui. Aqui eu vou colocar 5. E aqui eu vou colocar 5. Então, vamos fazer aqui um docker-compose-down só para poder matar qualquer coisa que exista ali. E vamos rodar aqui a nossa aplicação. Então o banco de dados vai subir, vai ter o health check ali, vamos ver se não deve demorar. Vamos ver Os outros dois dependem do banco Para poder subir O health check está baixinho E ele está demorando ainda por cima. Ou que eu fiz o health check e tem alguma coisa errada ali. Na verdade, eu tinha rodado o do bridge, eu não tinha olhado onde estava a pasta do terminal. Eu voltei para cá. Inclusive, eu rodei com o build ali. Como os containers estão com o mesmo nome de service, é bom a gente rodar com o build para poder forçar o build ali, como os containers aí estão com o mesmo nome de service, é bom a gente rodar com o build para poder forçar ali o build. Então, deu certo, foi bem rápido. Agora, então, se a gente fizer um curr na porta 8000, está lá o Hello World, e na 3000 também a gente tem Hello World, e a gente está acessando diretamente o Node. Então, dessa forma aqui, todos os containers estão usando a interface da minha máquina. Isso aqui é muito, mas muito mais performático do que o modo Bridge. Então, em determinados momentos, até mesmo para desenvolvimento, às vezes, você está fazendo um cenário de testes, um teste de stress, muitas vezes você está agarrando, é que você está com o modo bridge, coloca ali host, que vai ter aí uma grande diferença. Você pode desenvolver com o modo host, mas sabendo que você não vai poder rodar alguma outra coisa na mesma porta também. Mas esse modo host em questão de produção, ele também é muito utilizado para poder acelerar essa comunicação. Lembrando que sempre tem ali algumas camadas a mais com o bridge. A gente pode até olhar, vamos pegar aqui um Docker FPS, se eu fizer um inspect aqui no index, Docker inspect grep ip address. Vamos fazer aqui Inspect de forma geral. Vocês viram ali que ele não retornou nenhum IP. Aqui para cima acho que não tem nenhuma configuração de rede. Vamos pegar container aqui. Aqui o modo da rede, que está o host aqui, as configurações, está aqui network settings. Então, nós não temos um IP associado com uma rede, porque ele está usando o IP da própria máquina. Ele só está alocando a porta do próprio sistema operacional que eu estou aqui, não dentro de um namespace. Então, todo mundo é acessível pelo próprio, como ele está rodando dentro da própria máquina, todo mundo é acessível pelo localhost ou 127.0.0.1, ou pelo próprio IP, o próprio IP do meu WSL, por exemplo. Então, está aí outro tipo de rede que é muito importante para o Docker também, pessoal. Então, vamos seguir a nossa saga. É isso aí. E até a próxima.