DEV Community

Cover image for A extensão que vai transformar a forma como você usa o VSCode com o Docker!
Lucas Santos for Microsoft Azure

Posted on • Edited on

A extensão que vai transformar a forma como você usa o VSCode com o Docker!

Photo por Guillaume Bolduc no Unsplash

Se você é dev, como eu, então provavelmente você já deve ter trabalhado com o Docker em algum momento da sua vida. O Docker é uma ferramenta incrível de desenvolvimento porque ela permite que você não se preocupe em instalar algumas coisas no seu próprio computador, por exemplo, você pode subir um contêiner do MongoDB sem muito esforço. Além disso, utilizando contêineres, nós temos a capacidade de empacotar nossas aplicações e ter certeza de que elas vão funcionar da melhor forma possível em todos os sistemas que precisarmos.

Porém, um dos problemas que muitas pessoas enfrentam é ter que gerenciar o runtime do Docker através da linha de comando enquanto faz seu trabalho em outras ferramentas, como é o caso, por exemplo, de um desenvolvimento de aplicações usando o VSCode, se você é uma dessas pessoas, então eu tenho uma excelente notícia.

Recentemente a extensão do Docker para o VSCode saiu do status de preview e entrou na versão 1.0, que é o que chamamos de GA (General Availability), quando um sistema fica aberto para uso público! Se você não conhece essa extensão, vamos conversar um pouco sobre ela e entender como ela pode te ajudar muito.

Para que serve?

A extensão do Docker para o VSCode é uma caixa de ferramentas muito bem elaborada que contem a maioria das coisas que você precisa para manipular contêineres e imagens do Docker sem sair do VSCode por um minuto sequer.

Ela facilita não só a criação de novos contêineres mas também o gerenciamento de imagens, conexões, volumes e muito mais, vamos passar pelas principais funcionalidades da extensão e mostrar o que há de novo na versão 1.0.

Dockerfiles do jeito certo!

Uma das funcionalidades que, para mim, é um grande salvador de vidas é a capacidade de adicionar o famoso intellisense do VSCode para arquivos do tipo Dockerfile, ou seja, você não precisa decorar todos os comandos que um Dockerfile tem para poder criar seus contêineres de forma rápida e prática.

Todos que usam o Docker sabem que o Dockerfile é uma parte indispensável do pipeline de desenvolvimento porque ele permite que você descreva seus contêineres de forma declarativa e execute com um simples docker build.

Além disso a extensão também permite que criemos Dockerfiles para uma série de runtimes e frameworks de forma rápida e prática, basta abrir a Command Palette do VSCode através do F1 ou CTRL/CMD + Shift + P para criar o seu Dockerfile:

Além disso, como é possível ver na animação, a extensão já cria um docker-compose para debug e também final, além de criar as tasks necessárias no VSCode para podermos iniciar o nosso contêiner tranquilamente.

Docker-Compose também!

Além de prover o intellisense para o Dockerfile, os arquivos docker-compose também ganham mais inteligência, tendo seu próprio autocomplete contextual:

Além do intellisense de comandos, temos também o intellisense de imagens diretamente do repositório, mostrando uma lista das imagens mais recentes e mais usadas:

Ao pressionarmos CMD/CTRL + . vamos mostrar o peek das imagens mais populares no DockerHub, porém se continuarmos digitando, iremos buscar a imagem que queremos:

Docker View

Ao instalar a extensão, vamos ter uma série de paineis que serão mostrados na lateral do nosso editor, Estes paineis são completamente editáveis e mostram as imagens e os contêineres que temos criados na nossa máquina

Importante: Para que a extensão funcione da forma correta é necessário que você tenha o Docker instalado e rodando na sua máquina.

Além disso ela também mostra as imagens presentes no seu Hub do Docker:

Com isso você pode dar um pull ou abrir as imagens diretamente no navegador.

A extensão também permite que você adicione outros registros além do Docker Hub, podendo ser um registro pessoal, um registro na Azure ou qualquer outro tipo de local

Da mesma forma, a extensão já possui uma integração muito boa com o Azure CLI, permitindo que você possa controlar e integrar seus contêineres e registros diretamente do editor.

Comandos do Docker direto no VSCode

A maioria dos comandos que temos no Docker como, por exemplo, inspect, pull e muito outros acabam sendo presentes no nosso Command Palette dentro do VSCode:

Debug direto do editor

Podemos também debugar uma aplicação Node.js ou .NET diretamente de dentro do contêiner.

Veja a página de documentação e também a página de configuração da extensão. Se precisar de ajuda veja as "receitas" de como iniciar um debug com Node.js.

O que veio de novo na 1.0

Suporte a Python

A versão 1.0 da extensão trouxe melhorias principalmente para desenvolvedores Python, da mesma forma que podemos criar Dockerfiles para Node e outras linguagens, agora também podemos fazer o mesmo para Python:

E isso também se estende para a criação dos arquivos docker-compose:

Custommização de comandos

Quando executamos um comando direto da palette ou nos menus de contexto do explorer, a extensão executa estes comandos direto para o Docker em nosso nome. Agora é possível customizar a maioria destes comandos, veja a documentação para saber como fazer isso!

Comandos em múltiplos contêineres ou imagens

Esta é uma das melhores atualizações, pois permite que você execute um comando sobre diversos recursos ao mesmo tempo, isso é muito útil quando queremos limpar o nosso computador de imagens ou contêineres antigos, isso não é possível no Docker CLI sem um pouco de scripting.

Podemos fazer o mesmo com imagens:

Podemos também iniciar ou realizar qualquer comando diretamente em vários recursos:

Fique ligado!

Fora estas atualizações, temos mais uma lista de outras novidades que vieram na versão mais nova, então fique ligado e não deixe e atualizar o seu editor para usufruir das melhores extensões :D

Você tem outras sugestões de extensão? Usa outras ferramentas? Conta nos comentários! Ou então me chama nas minhas redes sociais :D

Não deixe de acompanhar mais do meu conteúdo no meu blog e se inscreva na newsletter para receber notícias semanais!

Top comments (2)

Collapse
 
ucavalcante profile image
Ulisses Cavalcante

Ótimo artigo eu que já usava só para o basico conheci um pouco mais, porém na maior parte do tempo acabo usando a linha de comando para não perder essa skill.

Collapse
 
_staticvoid profile image
Lucas Santos

Acho que um não exclui o outro, porém para ações em lote a extensão ajuda demais