Docker
Docker — é uma ferramenta projetada para ajudá-lo a criar, implantar e executar aplicativos em contêiner. Em palavras simples, é um software que permite "construir" uma aplicação com todo o seu ambiente e dependências em um container que é instalado no sistema operacional selecionado (Docker começou a oferecer suporte ao sistema operacional em 2015, ele pode ser instalado no MacOS e nos Linux distribuição).
Container é um arquivo que contém o aplicativo e todas as dependências necessárias, bem como as instruções necessárias para executar o aplicativo. O análogo da palavra "Container" é o IMG/imagem, ele aparece como resultado da operação "build".
Lançando a imagem
Quando a imagem é lançada, a plataforma de conteinerização (Docker) descompacta a imagem do contêiner com os arquivos e metadados necessários, inicializa a rede e o sistema de arquivos e, de acordo com as instruções no trim, inicia o aplicativo. O resultado final é um processo normal do sistema operacional. Um ambiente isolado é obtido usando a capacidade do kernel do sistema operacional e algumas bibliotecas.
A diferença entre o container e o servidor virtual, é que o container não possui sistema operacional próprio.
Um exemplo de uma operação de compilação
Ao criar um arquivo, você coloca nele diferentes documentos, arquivos e pastas. o docker faz o mesmo, ele coleta os dados necessários e coloca tudo em uma imagem que pode ser usada no futuro para instalar em outro sistema.
A imagem pode ser criada a partir de outro container, criando assim uma estrutura de imagens em camadas onde cada nova camada contém apenas alterações em relação às anteriores.
O que é Docker para
Ao construir uma aplicação em um container com todas as bibliotecas necessárias, você não precisa se preocupar com a correção do container funcionando em outro dispositivo/servidor. Afinal, se você verificou o aplicativo antes da compilação e ele funcionou corretamente, ele também será executado instalando o contêiner em outro servidor.