Docker — O que é Docker e como começar
Olá, DevZ.
Docker é uma palavra que está muito na boca dos desenvolvedores hoje em dia, mas o que é esta ferramenta? Você já ouviu aquela famosa frase "Na minha máquina funciona"? Este é o problema que o Docker veio resolver.
Tá. E como ele acaba com isso?
O Docker é um gerenciador de Containers (você vai ouvir muito essa palavra daqui pra frente) e encapsula sua aplicação dentro dele. Não importa o ambiente em que você esteja rodando, o Docker garante que a aplicação rodará sempre da mesma maneira pois o container, além de conter a sua aplicação, também contém tudo o que você precisa para que o seu sistema funcione.
Tipo uma máquina virtual? Nada de novo…
Não, um container é diferente de uma máquina virtual, essa é a novidade.
O Docker aproveita a infraestrutura do kernel do seu sistema operacional para não precisar instalar outro SO completo. Ao invés disso ele utiliza de um engine (chamado de Docker Engine, como mostra a imagem) para abstrair as chamadas de SO das suas aplicações e utilizar as libraries e binários já existentes. Para criar e executar os seus containers, o Docker cria processos (como os programas normais) mantendo isolados em cada um deles as dependências da sua aplicação, garantindo que estejam instaladas nela apenas as bibliotecas (libs) necessárias para fazer a sua aplicação funcionar.
Desta forma não é necessário que você instale todo um sistema operacional novo em cima do seu já existente para que você tenha todos os recursos do mesmo. Basta reutilizar o que o seu próprio SO já usa.
Parece interessante, Victor. Como eu começo?
O Docker funciona em muitos SO (até no Windows essa baleia fofinha funciona), você pode olhar esse Get Started Docker e seguir o passo-a-passo dependendo do seu sistema operacional, vale lembrar que no Windows ele só funciona a partir do Win 10 (Professional ou Entreprise), isso é por causa do Hyper-V, uma ferramenta do Win que provê a infraestrutura de software e as ferramentas de gerenciamento básico de um ambiente de virtualização que o Docker necessita para operar.
Eu vou partir do pressuposto que você já instalou o Docker. Pra verificar se está tudo certinho é só rodar o comando abaixo:
Docker run hello-world
Se você teve esse retorno no terminal, funcionou! Agora vamos ao que aconteceu ai: O Docker procurou uma imagem (calma que a explicação já vem…) chamada “hello-world” localmente. Como essa procura falhou, ele faz o download dessa imagem que está no Dockerhub (Sim, é um github de imagens do Docker. Hahaha.) e executa essa imagem. E o que ela faz? Te mostra essa mensagem explicando como a mensagem foi gerada e te fazendo um desafio de tentar algo mais ambicioso. Bem, desafio aceito. Faremos isso nos próximos capítulos.
Pera, pera, Victor. Aqui deu esse erro… E o que é imagem?
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Beleza. Isso é fácil. Você pode só dar um sudo antes do comando se você tiver no Ubuntu e pronto, vai funcionar. Basicamente o seu usuário não tem a permissão necessária para rodar esse comando. Lembrando que usuários de Windows e Mac precisam executar a app do Docker para que ele crie o serviço antes de rodar os comandos.
Se você não quiser ficar escrevendo sudo antes de vários comandos do Docker que faremos daqui para frente você também pode adicionar o usuário que você está logado ao Docker Group, onde você vai poder rodar os seus comandos e é bem tranquilo de fazer isso, basta digitar no terminal.
sudo usermod -aG docker ubuntu
Pronto, pode testar de novo. Agora que você já tem o Docker e já sabemos que ele está funcionando 100%, vamos continuar no próximo post com o que são Imagens, como listá-las e removê-las.
Se você chegou até aqui não esqueça de deixar o seu ❤ e/ou um comentário. I ❤ seu Feedback. Se você tem interesse por Docker você pode ler os outros textos que eu já escrevi.