Não entendo a diferença entre docker e chroot. Sim, é bom em termos de empacotamento do registro. Mas de alguma forma eu sinto que é só chroot com sinos e assobios extras.
Eu sei que estou perdendo alguma coisa. Seria ótimo saber como elas são diferentes e a necessidade do docker se o chroot pudesse fazer algo semelhante.
Também não consegui encontrar este Chroot Vs Docker suficientemente claro.
docker
linux
containers
Vipin Menon
fonte
fonte
Respostas:
Bem, os sinos e assobios extras são chamados de isolamento do processo, um contêiner obtém seu próprio espaço de nome no kernel do host, o que significa que o programa no contêiner não pode tentar ler a memória do kernel ou consumir mais RAM do que o permitido.
Ele também isola pilhas de rede, para que dois processos possam escutar na porta 8080, por exemplo, você terá que lidar com o roteamento no nível do host, não há mágica aqui, mas isso permite manipular o roteamento em um único local e evitar modificar a configuração do processo para ouça uma porta gratuita.
Em segundo lugar, um chroot ainda é de leitura / gravação, qualquer alteração é permanente, um contêiner de docker usando
aufs
será iniciado a partir de um sistema de arquivos limpo toda vez que você iniciar o contêiner (as alterações serão mantidas se você parar / iniciar o IIRC).Portanto, embora um contêiner possa ser considerado como
process namespace
+chroot
, a realidade é um pouco mais complexa.fonte
aufs
não é mais usado por padrão. Agora éoverlay2
Sim, há absolutamente mais do que isso,
chroot
a ponto de eles terem pouco ou nada em comum.docker image prune
...)docker exec
entrar neles etc.)docker container ...
)docker-compose
ou enxame como atualizações de baixo perfil para muito mais.fonte