12 ideias interessantes de projetos do Docker para iniciantes [2022]

Publicados: 2021-01-07

Hoje, os aplicativos não são mais desenvolvidos e implantados da maneira como eram usados ​​antes do DevOps. Desde que o DevOps se tornou uma tendência na indústria de TI e software, mudou radicalmente a infraestrutura operacional. Agora, desenvolvedores e operadores trabalham juntos para criar, testar e implantar aplicativos com rapidez e eficiência. É exatamente aí que o Docker se encaixa na imagem.

O Docker é um software de conteinerização, ou mais precisamente, uma ferramenta PaaS que permite fragmentar aplicativos e seus ambientes em partes menores que podem ser armazenadas e implantadas em qualquer ambiente e máquina de maneira descomplicada. Com a conteinerização, vários contêineres (incluindo aplicativos, seus arquivos de sistema e ambiente) funcionam sem problemas em uma máquina virtual, mesmo sem compartilhar todos os recursos.

Como resultado, você pode executar vários aplicativos na mesma máquina virtual, onde cada aplicativo funcionará como se possuísse seu sistema operacional, CPU, memória, armazenamento e outros recursos cruciais.

O ecossistema Docker compreende quatro projetos principais, Moby, Kubernetes e Containerd. No entanto, isso não é tudo – há muito mais no Docker do que esses três projetos. Todos os dias, a comunidade Docker trabalha ativamente no desenvolvimento de projetos e ferramentas de primeira classe com e para o Docker, para que desenvolvedores de todo o mundo possam criar e implantar aplicativos que possam ser executados em qualquer lugar. Se você deseja aprender DevOps, o Docker é uma seção importante para aprender.

Aprenda a criar aplicativos como Swiggy, Quora, IMDB e muito mais

Neste post, destacaremos alguns dos melhores projetos do Docker que todo aspirante a desenvolvedor deve conhecer!

Índice

Principais ideias de projetos do Docker

1. RancherVM

Quem usa o Docker provavelmente sabe o que é Rancher. É um fornecedor de contêineres como serviço que inclui uma série de algumas das estruturas de orquestração e agendamento de contêiner mais usadas – Docker Swarm , Kubernetes e Mesos . RancherVM é um dos projetos menos conhecidos do Rancher que permite executar uma VM dentro de um contêiner do Docker. Ele é equipado com uma interface do usuário da Web para gerenciar chaves públicas, nós de computação, VMs e acessar consoles VNC a partir de um navegador da Web.

Com o RancherVM, você pode criar VMs que são executadas dentro de pods do Kubernetes, também conhecidos como VM Pods. Cada pod de VM inclui um contêiner que executa uma instância de máquina virtual. Atualmente, o RancherVM suporta apenas imagens KVM. Assim, você pode empacotar qualquer imagem KVM como uma imagem do Docker, distribuí-la usando qualquer registro do Docker (por exemplo, DockerHub) e executá-la no RancherVM.

Além disso, o RancherVM estende a API do Kubernetes com definições de recursos personalizados (CRDs). Você pode definir uma especificação VirtualMachine CRD especificando qual imagem base, quantos recursos de computação e quais pares de chaves estão autorizados a iniciar uma sessão SSH. Em seguida, um controlador Kubernetes criará pods de VM de acordo com as especificações fornecidas por você e exibirá o mesmo no status do VirtualMachine CRD.

Saiba mais: 10 projetos de DevOps empolgantes para iniciantes [2020]

2. Dockercraft

Em novembro de 2015, a Microsoft lançou o Dockercraft diante dos olhos do público. Ele foi lançado como código aberto no GitHub, explicitamente projetado para permitir que os desenvolvedores gerenciem seus contêineres Docker no Minecraft , um jogo popular que a Microsoft comprou por US$ 2,5 bilhões !

De acordo com o GitHub , o Dockercraft é um “cliente Minecraft Docker simples, para visualizar e gerenciar contêineres Docker” no ambiente 3D do Minecraft. Não é exatamente um gerenciador de Docker complicado implementado no Minecraft, mas sim uma maneira simplista de visualizar e alternar interruptores em contêineres do Docker.

É importante lembrar que você deve ter a versão completa do Minecraft no seu PC para usar o Dockercraft. Se você já o possui, pode baixar o Dockercraft do Github . Depois de concluir a configuração, você deve executar um contêiner Dockercraft e ingressar em um servidor Minecraft personalizado – Cuberite.

3. Vinho

A maior desvantagem do Docker é que os aplicativos Dockerizados não são multiplataforma, o que significa que você não pode executar nativamente um aplicativo Docker Windows no Linux. Para resolver esse problema, o Wine foi criado. O Wine on Docker foi desenvolvido para permitir que aplicativos do Windows sejam executados no sistema operacional Linux, assim como um aplicativo local seria executado em qualquer lugar do mundo. No Docker, é conhecido como Wine, enquanto no GitHub , chamamos de Docker-Wine.

O Wine usa a camada de compatibilidade do Wine para dar suporte a aplicativos do Windows no Linux. Como o Wine vem com drivers de vídeo dinâmico e VirtualGL com suporte local e remoto, ele deve funcionar bem com placas Nvidia prontas para uso e drivers Nvidia e até mesmo outras placas que usam drivers Mesa. Você pode configurar o Wine para se adaptar automaticamente a quaisquer drivers que você tenha instalado, desde que sejam os mais recentes para sua ramificação.

4. Docker-Seg

Atualmente, existem apenas alguns serviços de monitoramento para imagens do Docker, por exemplo, Shipyard . E é um fato bem estabelecido que os desenvolvedores/programadores adoram ferramentas que lhes permitem acessar todos os requisitos essenciais dentro do shell. O Docker-Mon é uma dessas ferramentas de monitoramento do Docker do console. O Docker-mon é baseado em Blessed-contrib , uma estrutura de painel centralizada em shell.

Este projeto ainda é um trabalho em andamento e conta com o recurso de estatísticas do docker que ainda não foi lançado. Portanto, para usar o Docker-Mon, você precisará de uma compilação mestre ou da próxima v1.5.0 (você pode verificar o lançamento da v1.5.0-rc1 aqui ).

5. Passageiro-estuário

Todos nós sabemos que o Phusion Passenger é o favorito dos desenvolvedores Rails. O objetivo principal deste servidor de aplicativos é criar um ambiente adequado onde os desenvolvedores possam executar seus aplicativos sem problemas. Essa ideia foi o que desencadeou a criação do projeto Passenger-Docker. O objetivo era desenvolver uma imagem de base padrão sensata para desenvolvedores que desejam implementar o Docker em seu ambiente de produção.

O Passenger-Docker é um conjunto de imagens do Docker projetado para servir como base para imagens de aplicativos Web Ruby, Python, Node.js e Meteor. Mantendo o mantra central do Phusion Passenger, o projeto Passenger-Docker busca simplificar e agilizar o processo de criação de imagens do Docker para aplicativos da web.

6. KubeVirt

KubeVirt é um complemento de gerenciamento de VM para Kubernetes. Ele foi desenvolvido para oferecer um terreno comum para a criação de soluções de virtualização em cima do Kubernetes. Essencialmente, o Kubernetes foi criado para gerenciar contêineres e não outros tipos de infraestrutura. No entanto, você pode usar o Kubernetes para orquestrar clusters de VM. Isso é o que o KubeVirt faz – ele adiciona funcionalidades extras ao Kubernetes para que ele possa dar suporte a VMs perfeitamente.

O KubeVirt visa estender as funcionalidades do Kubernetes incorporando tipos de recursos de virtualização adicionais por meio da API de definições de recursos personalizados do Kubernetes . Você pode usar o KubeVirt para criar uma VM predefinida, iniciar uma VM, parar uma VM, excluir uma VM e também agendar uma VM em um cluster Kubernetes. No entanto, KubeVirt ainda é um trabalho em andamento.

Leia mais: Rede Kubernetes: um guia completo para entender o modelo de rede

7. Boletim

Docket é um registro personalizado do Docker que facilita implantações ultrarrápidas via BitTorrent. Ele permite implantar imagens do Docker em um grande cluster de máquinas a uma velocidade impressionante. Docket foi projetado e desenvolvido em 48 horas no hackathon Gopher Gala Golang 48 horas! Escrito em Golang, o Docket é fácil de usar e pode funcionar bem com seu registro privado do Docker.

O Docket é composto por três componentes principais –

  • Docket Registry: É um serviço REST que funciona como um registro. Ele pode receber tarballs de imagem do Docker do cliente, armazenar metadados em um banco de dados e criar torrents a partir deles, bem como semeá-los.
  • Docket Client: É a interface com a qual o usuário final interage. Ele permite visualizar imagens disponíveis no registro, enviar uma imagem para o registro e extrair uma imagem do registro (isso aciona uma implantação de BitTorrent).
  • BitTorrent Tracker: Embora o Docket tenha o recurso BYOT (traga seu rastreador), recomendamos que você instale o opentracker para rastrear o BitTorrent.

8. Ferramenta de migração de contêiner (CMT)

Uma coisa boa sobre os contêineres do Docker é que eles são portáteis, pois podem ser executados em qualquer tipo de host que tenha o Docker instalado. No entanto, o Docker não possui o recurso interno que permite mover contêineres em execução de um cluster para outro em uma rede. Para aumentar o desafio, o Checkpoint & Restore (CR) ainda é um recurso relativamente novo que não está disponível genericamente para usuários de contêiner. A CR exige um nível de compreensão sobre sua funcionalidade e, geralmente, a maioria dos usuários que não são bem versados ​​na funcionalidade de CR obtém erros ao executar a CR devido às diferenças/limitações entre o host de origem e de destino.

A Container Migration Tool ou CMT foi desenvolvida especificamente para combater esse problema de migração. A ideia por trás da criação do CMT era criar uma ferramenta de linha de comando externa que pudesse ser usada com Docker ou runC que facilitasse a migração ao vivo de contêineres entre diferentes hosts realizando validações de pré-migração e descobrindo automaticamente hosts de destino adequados.

9. dockerfile_lint

Os linters são um componente crucial no desenvolvimento de uma cadeia de ferramentas desde a frente. Eles são amplamente usados ​​por desenvolvedores de JavaScript e são particularmente úteis quando vários desenvolvedores trabalham em uma base de código compartilhada. dockerfile_lint é um linter baseado em regras para Dockerfiles .

Você pode usar as regras dockerfile_lint para verificar a sintaxe do arquivo, a semântica arbitrária e os atributos de práticas recomendadas determinados pelo gravador do arquivo de regras. Além disso, você pode usar o linter para verificar as regras do LABEL em relação às imagens do Docker. Os arquivos de regras são escritos em YAML . Todas as regras são implementadas usando expressões regulares e podem ser executadas em uma instrução do Dockerfile por vez. O arquivo de regras consiste em quatro seções –

  • Seção de perfil: fornece as informações necessárias sobre o arquivo de regra que ajuda o usuário a selecionar um arquivo de regra apropriado para um Dockerfile específico.
  • Seção geral: contém regras gerais de sintaxe.
  • Seção de regra de linha: contém regras que devem ser executadas em uma determinada instrução no Dockerfile. Existem regras para verificar a sintaxe de cada instrução.
  • Seção de instruções obrigatórias: Contém uma lista de instruções que devem existir no Dockerfile para que possam ser consideradas válidas.

10. Dockermix

Dockermix é uma ferramenta de linha de comando usada para desenvolver e gerenciar ambientes Docker de vários contêineres. Neste projeto, os conjuntos de contêineres são definidos no formato YAML que emula as opções disponíveis na API do Docker. O objetivo por trás da criação do Dockermix era permitir que os desenvolvedores lançassem, orquestrassem e implementassem sem esforço ambientes complexos de vários nós para teste e desenvolvimento.

O projeto Dockermix agora foi renomeado como Maestro com seu desenvolvimento sob a organização Toscanini. Para acessar o código fonte atual, você pode conferir o projeto Maestro .

11. Livro de receitas do Docker

Docker Cookbook inclui todos os recursos necessários para instalar o Docker e construir, gerenciar e executar contêineres do Docker. Este projeto do Docker está associado apenas ao mecanismo de contêiner do Docker que é distribuído pela Docker, Inc., e não aborda as ferramentas do ecossistema do Docker ou outras tecnologias como Cgroups ou AUFS.

Para usar o Docker Cookbook, você deve ter o Chef v12.15 ou posterior instalado em sua máquina. O Cookbook oferece suporte para várias plataformas, incluindo Amazon Linux, Fedora, CentOS 7, Debian 8/9 e Ubuntu 14.04/16.04. Além disso, ele pode configurar automaticamente os repositórios de pacotes upstream do Docker.

12. Dokku

Dokku é um mini-Heroku com tecnologia Docker, a menor implementação de PaaS já desenvolvida. Essa solução PaaS permite que os usuários configurem e implantem aplicativos em um ambiente de produção em um servidor separado. Ele usa o Docker para ajudar os desenvolvedores a criar e gerenciar o ciclo de vida completo dos aplicativos.

Você pode instalar o Dokku em qualquer máquina e até mesmo usá-lo em provedores de nuvem baratos. Além disso, você pode escrever plugins Dokku em qualquer idioma, compartilhá-los online e estender os plugins já disponíveis.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Empacotando

Estes são apenas alguns dos muitos, muitos projetos que foram desenvolvidos com o Docker como base. Embora você não precise de todas essas ferramentas do Docker para seu próximo projeto, é bom saber que você tem uma infinidade de opções!

Se você estiver interessado em aprender mais sobre big data, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, IIIT -B Status de ex-aluno, projetos práticos práticos e assistência de trabalho com as principais empresas.

Prepare-se para uma carreira do futuro

Inscreva-se agora para o Programa PG Executivo em Desenvolvimento Full Stack