1.4 Configuração do Ambiente - Docker

Um dos grandes desafios no uso de tecnologias voltadas para o desenvolvimento de aplicações diz respeito à configuração de ambientes para o desenvolvimento e execução do produto de software produzido. A cada novo colaborador que chega na organização, a preparação do ambiente de trabalho pode consumir um tempo significativo. Conforme visto na Seção 1.2, o uso de máquinas virtuais simplificou bastante esse processo, mas as máquinas virtuais ainda sofrem do problema da exigência de um SO completo em cada uma delas para prover os serviços necessários. A evolução das mesmas deu origem ao conceito de contêineres, os quais possuem capacidades semelhantes às das máquinas virtuais, com a vantagem de serem mais "leves" e demandarem menos recursos de hardware para sua execução.

A tecnologia de contêineres surgiu para facilitar essa atividade e simplificar não apenas a configuração do ambiente de desenvolvimento, como também o ambiente de execução da aplicação. Utiliza-se muito hoje o termo dockerização de aplicação para fazer referência a uma aplicação que não era executada em contêineres e passa a ser após a dockerização.

O primeiro passo para dar início a esse processo é instalar as ferramentas do Docker. Nesta seção veremos como instalar e configurar o ambiente do Docker + Docker Compose que será utilizado nos capítulos seguintes. Apesar do Docker poder ser instalado no ambiente Windows, é altamente recomendável que você faça uso da plataforma no ambiente Linux por este ser mais estável e alinhado com a filosofia do Docker.

Windows

  • Faça o download do instalador do Docker Desktop aqui;

  • Abra o instalador e siga as instruções (Importante: deixe a opção "Enable Hyper-V Windows Features" ativa!);

  • Quando o processo de instalação terminar, reinicie o computador;

  • Ao reiniciar, abra o Docker Desktop para poder iniciar o daemon do docker;

  • Tanto o Docker quanto o Docker Compose estarão instalados e ativos na sua máquina, e podem ser testados abrindo uma janela do Powershell e inserindo comandos como docker run hello-world.

    Obs: No Windows, o Docker Desktop também vem com um pequeno tutorial para começar a utilizar a ferramenta, pode ser útil.

Instalação no Windows

Mac

  • Faça o download do instalador do Docker Desktop aqui

  • Instale normalmente, como qualquer aplicativo Mac (duplo-clique no arquivo .dmg)

  • Após instalação, execute-o no menu de aplicativos (será necessário autorizar e digitar sua senha de administrador)

  • Assim que o Docker terminar de iniciar, seu ícone ficará fixo na barra do sistema

Docker rodando no Mac
  • A partir deste momento, a instalação está completa. É possível testar abrindo uma janela do terminal e rodando o comando docker run hello-world

Obs: No Mac, o Docker Desktop também vem com um pequeno tutorial para começar a utilizar a ferramenta, pode ser útil.

Docker rodando no Mac após o comando hello-world

Linux

Docker Engine no Linux Ubuntu

Uma boa fonte de informação para a instalação do Docker é o seu próprio web site. Os passos da instalação no Ubuntu apresentados abaixo foram extraídas de lá, nas opções Install Docker Engine on Ubuntu e Install Docker Dekstop on Ubuntu.

Os passos a seguir, correspondem a execução dos comandos para a instalação utilizando-se os repositórios de pacotes da própria Docker Inc.

Configuração do repositório

  • Remova instalações anteriores com

  • Configure os repositórios

  • Adicione a GPG Key oficial da Docker

  • Verificação da identididade Docker. A fingerprint exibida deve ser9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

  • A saída produzida pelo comando acima deve ser:

  • Configuração do repositório stable como fonte para a instalação dos pacotes

Instalação dos pacotes

  • Utilize os comandos abaixo para a instalação do docker e docker-compose

  • Testando a instalação

Observa-se no comando acima que o docker está instalado na versão 19.03.12, entretanto, as configurações ainda não estão completas. Continue nos passos abaixo para finalizar as configurações para que a mensagem "Cannot connect to the Docker daemon at tcp://127.0.0.1:2375. Is the docker daemon running?" não seja mais exibida.

Configurações pós-instalação

  • Habilitar o uso do Docker para usuários sem privilégio de root. Após a execução do comando abaixo, o ideal é fazer o logoff e logar novamente na conta para habilitar as alterações nos grupos do Linux

  • Após realizar o logout ou reinicializar a máquina, para verificar se você foi adicionado ao grupo, utilize o comando abaixo

  • O resultado, deve ser parecido com o apresentado abaixo. Observe que o usuário faz parte do grupo docker

  • Configure o Docker para inicializar no boot da máquina

  • Caso deseje desabilitar esse comportamento, basta executar

  • Configurar acesso remoto por meio do arquivo de unidade do systemd

    • Se após a instalação você observar que apareceu uma mensagem do tipo "Cannot connect to the Docker daemon at tcp://127.0.0.1:2375. Is the docker daemon running?", será necessária a execução dos passos abaixo.

    • Use o comando abaixo para sobrescrever o arquivo docker.service

  • Cole e salve o conteúdo abaixo no arquivo

  • Em seguida, reinicialize o systemctl

  • Reinicialize o serviço do docker

Teste da instalação e execução do hello-world

Chegando até aqui, recomendo a reinicialização da máquina e o teste do Docker com a execução dos comandos a seguir

  • Verificando o status da execução do docker daemon

  • Como resultado, esse comando irá apresentar algo parecido com o mostrado na imagem a seguir

Tela ilustrando o status do docker-daemon ativo e em execução
  • Verificação da versão do Docker em execução. Observe que após todas as configurações acima, não aparece mais a mensagem de erro mostrada acima Cannot connect to the Docker daemon at tcp://127.0.0.1:2375. Is the docker daemon running?" e a saída do comando é correta conforma ilustrada na imagem abaixo.

  • Finalmente, podemos executar o Hello World do Docker com o comando abaixo. A imagem a seguir ilustra a saída resultante do comando.

O comando acima irá produzir como resultado:

Se você chegou até aqui com sucesso, o seu ambiente está pronto para a continuidade do nosso curso. Do contrário, poste sua dúvida de instalação no nosso Fórum que teremos o maior prazer em ajudar.

Para aqueles que desejarem, há uma máquina virtual Linux Mint 21.1 para VirtualBox, com o ambiente configurado, incluíndo o Python e o Docker. O download da mesma pode ser feito a partir do link https://drive.google.com/file/d/1Fk9JoIUM202J2IUgPvgF-y7vwa0tH9IW/view?usp=sharing. Após o download e descompactação, para fazer uso da imagem basta escolher a opção Arquivo->Importar Appliance do VirtualBox. Login: mlops e Senha: mlops.

Docker Desktop no Linux Ubuntu

Em princípio, conforme documentação, ao instalar o Docker Desktop sozinho, o Docker Engine também deveria ser instalado. Entretanto, na minha distribuição baseada em Ubuntu, Linux Mint 21.1, o Docker Desktop só funcionou conforme desejado se instalasse antes o Docker Engine.

Desse modo, para os que desejarem tentar instalar apenas o Docker Desktop, os passos detalhados estão disponíveis no link Install Docker Desktop on Ubuntu.

No exemplo apresentado aqui, uma vez que o Docker Engine já se encontra instalado, a instalação do Docker Desktop se resume a baixar a última versão do arquivo de instalação docker-desktop--.deb(disponível no site acima) realizar a instalação.

No ato da escrita desta versão do livro, o instalador estava a versão: docker-desktop-4.16.2-amd64.deb. Desse modo, para realizar a instalação desse pacote, basta executar o comando abaixo:

Linux Arch

  • No terminal, instale os pacotes docker e docker-compose com sudo pacman -S docker docker-compose

  • Rode o comando sudo usermod -aG docker $USER para adicionar o usuário atual ao grupo do docker e então poder rodar o comando sem ser root;

  • Feche o terminal e abra de novo (talvez seja necessário reiniciar o computador para finalizar a instalação e ativar o daemon do docker);

  • Rode o comando docker run hello-world para confirmar que a instalação aconteceu corretamente.

Instalação no Linux

Last updated