Afinal, o que é Docker, é de comer?

Lo-fi Recomendado do autor para ouvir lendo o Artigo. (opcional) https://youtu.be/rt1mRnRp79A?si=PhSQ1Ey9qcx3K0w_


Antes de tudo.

Você sabe o que é VM? ou Virtual Machine (Máquina Virtual). Antes de aprendermos o que é Docker, precisamos entender que Máquina Virtual é uma simulação de um ambiente, geralmente emulando algum SO (Sistema Operacional), para assim rodar alguma aplicação que só existe nesse.

Então o Docker é uma VM?

NÃO, NÃO E NÃO.

O Docker é um container, pela palavra, já podemos imaginar que container é algo que contém algo dentro mas que isola esse algo da maior parte do sistema.

Por exemplo, se eu criar um Script em Java que ao executar pega todos os arquivos dentro da pasta Documentos ou Documents e faz upload para uma nuvem privada minha, esse malware criado ao ser executado vai realizar a ação independente do computador, já se for executado em Docker não irá, como o Docker irá containerizar a aplicação para ela não ter recursos do sistema por forma externa.

Então passando bem por cima, o Docker é uma forma de containerizar e rodar aplicações, diferentemente de uma VM que emula um SO.


Docker no Linux e no Windows.

Docker para Linux utiliza uma ferramenta do Linux para realizar a containerização com segurança, logo essa ferramenta não deve existir para Windows certo? Sim e Não, vamos lá. O Docker for Windows por baixo dos panos roda uma VM de Linux para assim poder containerizar dentro do Linux. Um pouco complexo, mas ele usa um caminho maior para poder rodar o container.

SEMPRE Dockers no Linux terão desempenho superior a Dockers no Windows!

Instalando o Docker.

Observação do autor: nesse tutorial estarei utilizando o SO Linux Ubuntu.

📎 Tutorial para instalar no Linux Mint. 📎 Tutorial para instalar no Linux Ubuntu. 📎 Tutorial para instalar no Windows.


Hello World em Docker.

sudo docker run hello-world

Afinal o que este comando faz?

na pratica ele faz uma pesquisa nos containers que estao na sua maquina e procura algum com o nome hello-world, como nao tem, ele procura no Docker Hub e caso ache ele baixa e roda o container que foi achado.

SUDO serve para o comando rodar com permissões de super usuário, DOCKER é para referenciar o aplicativo docker para o terminal, RUN é a sintaxe do Docker para rodar o container e HELLO-WORLD é o nome do container que você deseja rodar.


E aí? Preparado para rodar seu primeiro container?

Recomendação do autor: utilize Linux 👍

Autoria do Arquivo: Giovanni de Almeida Martins.

Distribuição gratuita autorizada.

Bibliografia

Abraços dev 👋🐘.

Desde que eu aprendi a usar docker, tenho utilizado para praticamente todo tipo de projeto. A praticidade de isolar o ambiente é gratificante.

Perfeita explicação, sempre confundi o docker com VM, mas agora tudo foi explicado, parabéns

SEMPRE Dockers no Linux terão desempenho superior a Dockers no Windows!

Uai? Mas os windows containers não estão ai para isso? De fato rodar "docker no windows" via WSL2 não é rodar docker no windows é rodar docker no linux usando maquina virtual. Mas faz um tempo que existe o windows containers. A principio tem performance proxima de 100% de rodar a aplicação fora do container em algum windows server. Eu não tenho windows server, minha licença é windows home e nem tenho interesse em estudar containers do windows agora. Porém afirmar que sempre vai ser superior provavelemente é um erro.

Você está correto. Windows Containers oferecem uma alternativa para executar contêineres diretamente no ambiente Windows. No entanto, é importante considerar a compatibilidade de aplicativos e o ecossistema estabelecido em torno dos contêineres Linux. Ambas as opções têm seus próprios usos e vantagens, e a escolha depende das necessidades específicas do projeto.