Docker — O que é Docker e como começar

Victor Hugo Rocha
Training Center
Published in
4 min readNov 4, 2016
victorhugorocha.tk

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…

A esquerda temos uma VM e a direita o funcionamento do Docker

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.

  1. Docker. O que é e como começar.
  2. Docker. O que são imagens e containers.
  3. Docker. Dando pull e push nas suas imagens.

--

--