O que é Docker
Plataforma que usa virtualização no nível do sistema operacional para criar e administrar ambientes de forma isolada, e assim entregar software em pacotes chamados contêineres.
Esse processo é chamado de conteinerização.
Os contêineres são isolados uns dos outros e agrupam seus próprios softwares, bibliotecas e arquivos de configuração, eles podem se comunicar uns com os outros por meio de canais bem definidos.
O principal objetivo dos containers é criar essa independência: a habilidade de executar diversos processos e aplicativos separadamente para utilizar melhor a infraestrutura e, ao mesmo tempo, manter a segurança que você teria em sistemas separados.
As ferramentas de container, incluindo o Docker, fornecem um modelo de implantação com base em imagem. Isso facilita o compartilhamento de um aplicativo ou conjunto de serviços, incluindo todas as suas dependências, em vários ambientes.
Docker também automatiza a implantação do aplicativo (ou de conjuntos de processos que constituem um aplicativo) dentro desse ambiente de container.
- 1. Defina o ambiente do app com um Dockerfile para que ele possa ser reproduzido em qualquer lugar.
- 2. Defina os serviços que compõem o app docker-compose.yml para que possam ser executados juntos em um ambiente isolado.
- 3. Execute o comando
docker compose uppara inicializar a app. Na primeira vez use o argumento
--buildpara a construção do ambiente. Também pode executar este comando usando o binário docker-compose.
Como funciona
Exemplo: O Docker Client a partir de um arquivo Dockerfile pode executar um build para criar uma imagem e a partir desta executar um docker run para criar um container.
Também podemos executar um docker pull para puxar a imagem do repositório remoto para dentro do repositório local e executar um docker run para criar um container a partir dessa imagem. Um único código para rodar em todos os lugares! Com a utilização do docker podemos rodar a app em qualquer ambiente que tenha o docker instalado, como por exemplo: windows, mac, qualquer distro linux, etc.
Rápido e fácil, apenas com a configuração de arquivos e a execução de alguns comandos.