Um livro publicado em 1981, chamado Pregando geléia em uma árvoredescreve o software como “nebuloso e difícil de controlar”. Isso era verdade em 1981 e não é menos verdade quatro décadas depois. O software, seja um aplicativo que você comprou ou que você mesmo construiu, continua difícil de implantar, gerenciar e executar.
Os contêineres Docker e o padrão OCI para contêineres e seus tempos de execução fornecem uma maneira de controlar o software. Você pode usar contêineres para empacotar um aplicativo de tal forma que seus problemas de implantação e tempo de execução – como expô-lo em uma rede, como gerenciar seu uso de armazenamento, memória e E/S, como controlar permissões de acesso – sejam tratados externamente. do próprio aplicativo e de maneira consistente em todos os aplicativos “contêinerizados”. Você pode executar seu contêiner em qualquer host compatível com Linux ou Windows que tenha um tempo de execução de contêiner instalado.
Os contêineres oferecem muitos outros benefícios além do encapsulamento, isolamento, portabilidade e controle. Os contêineres são pequenos em comparação com as máquinas virtuais, mensuráveis em megabytes versus gigabytes. Eles começam instantaneamente. Eles têm seus próprios mecanismos integrados para controle de versão e reutilização de componentes. Eles podem ser facilmente compartilhados por meio de diretórios como o Docker Hub público ou um repositório privado.