Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Docker vs SO

Olá,

  • Utilizando um docker em um único servidor, se ele acabar caindo todas as aplicações que estão nele também caem ? Isso não seria o mesmo que hospedar tudo diretamente na máquina na questão de travamentos etc (mesmo sabendo que podemos limitar recursos) ?

  • Se o meu app 1 precisa da versão X do PHP e o app 2 precisa da versão Y, como isso vai ser dito para o docker se ele se baseia no SO ?

  • Como um docker funciona em um dual boot ? Ele vai pegar as informações do SO que está ativo no momento ? E a separação de recursos ? Tenho uma máquina com Linux e Windows em um dual boot para testes.

1 resposta
solução!

Olá Victor, tudo bem?

1- Se todas suas aplicações estiverem no mesmo servidor e este ficar fora, sim as aplicações ficaram indisponíveis (por isso a importância de conceitos de alta disponibilidade, balanceadores de carga, etc ... dependendo do nível de disponibilidade e desempenho esperado projetado para aplicação, não somente o deploy deve ser em servidores diferentes como em regiões geográficas diferentes para manter app disponível.

2- Se o meu app 1 precisa da versão X do PHP e o app 2 precisa da versão Y ... é preciso ter claro a diferença do que é uma imagem docker para um container docker, imagem que vc faz download do DockerHub por ex PHP 4 e sobe um container com base nessa imagem, se vc vai executar no mesmo ambiente um container PHP 5, o docker tem a capacidade de baixar somente a diferença entre as imagens das versões do PHP, reutilizando oq há em comum das 2 imagens. Isso ocorre em função da questão de camadas usadas para construir a imagem, mesmo que sejam coisas bem diferentes ... digamos que uma imagem python3.9 tenha sido elaborada com base em um alpine linux e após baixar essa imagem você vai subir um LAMP ... tudo o que for comum na imagem para subir um novo container é reaproveitado das imagens que já estão no docker host.

3- O docker faz uso de de features do Kernel Linux (cgroups, namespaces, SELinux, Netfilter, Netlink, ...) e o kernel é a camada de interação com hardware. No caso de dualboot, vai funcionar como se fosse 2 máquinas completamente distintas e o que muda é que Docker no MacOS e no Windows (no WSL é um pouco diferente) sobe o docker com base em um Alpine Linux e fornece uma camada de abstração que é o docker desktop ... no Linux ele funciona nativo compartilhando o mesmo kernel do docker host com os containers.

Um abraço e bons estudos.