O Docker é a plataforma de conteinerização mais popular, mas não existe isoladamente. Todo um ecossistema de ferramentas complementares e projetos derivados nasceu em torno da transição para containers.
Aqui está um resumo de 10 analisadores, indexadores e orquestradores de código aberto que tornam o Docker ainda mais conveniente e útil. Se você ainda está no início de sua jornada do Docker ou é um profissional experiente usando tecnologia em produção, pode encontrar algo que valha a pena incluir em seu próximo projeto.
índice
- discagem de encaixe
- operadora
- governadores
- tráfego
- curiosidade
- syft
- Tempero
- rebanho
- Dokku
- Hadolin
- Resumo
discagem de encaixe
O Docker Compose é a única ferramenta nesta lista que realmente faz parte do Docker. O Compose é uma maneira acessível de criar "pilhas" de contêineres do Docker que você pode gerenciar em uníssono.
A CLI padrão do Docker permite que você interaja com contêineres individuais. O Compose fornece uma interface semelhante para trabalhar com contêineres de forma agregada. Isso permite controlar facilmente sistemas que exigem vários contêineres, como servidor de aplicativos, banco de dados e camada de cache. Defina esses componentes como serviços em um arquivo docker-compose.yml
e use o binário docker-compose
para iniciá-los todos juntos:
versão : 3 serviços : app : imagem : example.com/example-app:latest ports : - 80:80 database : image : mysql:latest expo : - 3306 cache : image : redis:latest expo : - 6379
A execução docker-compose up -d
criaria três contêineres, um para o aplicativo, o banco de dados e os serviços de cache. Eles serão vinculados automaticamente um ao outro. Isso é muito mais gerenciável do que repetir o comando docker run
várias vezes.
operadora
Portainer é uma GUI para instalar o Docker. É uma ferramenta baseada em navegador que oferece uma interface abrangente para visualização, criação e configuração de contêineres. Você também pode interagir com outros tipos de objetos do Docker, como imagens, redes e volumes.
O Portainer é implantado como sua própria imagem do Docker:
docker run -d -p 9000:9000 --name=portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Isso configura uma instância do Portainer que pode ser acessada por localhost:9000
. Ele funciona montando o conector Docker do seu host no contêiner Portainer. O Portainer pode usar o soquete para gerenciar contêineres em execução em seu host.
governadores
Kubernetes é uma plataforma de orquestração de contêineres distribuídos. É uma maneira comum de mover cargas de trabalho Dockerizadas para ambientes de produção. Um cluster Kubernetes consiste em vários nós (máquinas físicas), cada um adequado para hospedar instâncias de contêiner.
O Kubernetes oferece escalabilidade e implantação fáceis. Enquanto o Simple Docker expõe contêineres individuais em uma única máquina, o Kubernetes gerencia vários contêineres executados perfeitamente em vários nós.
Como o Kubernetes é compatível com OCI, você pode implantar suas imagens existentes do Docker em seu cluster:
apiVersion : apps/v1 kind : Deployment spec : replicas : 3 selector : matchLabels : app : example template : metadata : labels : app : example spec : containers : - name : example image : example.com/example-image:latest ports : -porta do contêiner: 80
kubectl apply -f deployment.yml
Este exemplo cria uma distribuição do Kubernetes de example.com/example-image:latest
Image. As replicas: 3
significam que você acaba com três instâncias de contêiner, que fornecerão redundância para seu sistema. A implantação é semelhante à execução do docker run -d -p 80:80 example.com/example-image:latest
, embora isso inicie apenas um único contêiner.
tráfego
O Traefik é um proxy reverso HTTP fácil de integrar com cargas de trabalho de contêiner. Ele se reconfigura automaticamente com novos caminhos ao criar e remover contêineres.
O Traefik permite anexar tags aos seus contêineres para definir nomes de domínio e comportamento de encaminhamento. O software criará rotas de proxy apropriadas sempre que um contêiner com tags correspondentes ingressar na rede Traefik.
tráfego
O Traefik também oferece recursos de balanceamento de carga, suporte a WebSocket, uma API REST, métricas integradas e um painel baseado na Web para que você possa monitorar o tráfego em tempo real. Essa é uma boa maneira de expor vários contêineres públicos em nomes de domínio usando uma única instalação do Docker.
curiosidade
Trivy é um scanner de imagem de contêiner que detecta vulnerabilidades conhecidas. A digitalização de suas imagens antes de implantá-las na produção dá a você a confiança de que suas cargas de trabalho estão seguras e protegidas.
O Trivy está disponível como sua própria imagem do Docker. Você pode iniciar uma varredura simples da example-image:latest
usando o seguinte comando:
docker run --rm -v trivy-cache:/root/.cache/ -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy:latest image example-image:latest
O Trivy identifica os pacotes de software em sua imagem, verifica vulnerabilidades e gera um relatório contendo a ID CVE, a gravidade e o intervalo de versão afetado para cada problema. Você deve atualizar cada pacote para a FIXED VERSION
indicada pelo Trivy. Portanto, executar a ferramenta após criar uma imagem é uma maneira fácil de aumentar a segurança de suas implantações.
syft
O Syft gera SBOM (lista de materiais de software) a partir de imagens do Docker. Estas são listas de todos os pacotes do sistema operacional e dependências de linguagem de programação incluídas na imagem.
O Syft ajuda você a assumir o controle de sua cadeia de suprimentos de software. O Docker facilita a referência de conteúdo remoto e a sobreposição de sistemas de arquivos complexos sem necessariamente perceber. É ainda mais difícil para os usuários de sua imagem entender o que está dentro.
Ataques recentes de alto perfil mostraram que longas cadeias de suprimentos de software representam uma séria ameaça. A execução do Syft em suas imagens mantém você informado sobre sua composição, permitindo que você avalie se pode remover alguns pacotes ou alternar para uma imagem de base mais mínima.
Tempero
Em um tópico relacionado, o Dive facilita a inspeção do sistema de arquivos de imagem do Docker. As imagens são bastante opacas por padrão, então é comum lançar um container para descobrir o que está dentro. Isso pode colocá-lo em risco se a imagem contiver um processo malicioso.
Dive permite que você navegue pelo sistema de arquivos de uma imagem usando uma visualização em árvore interativa em seu terminal. Você também pode explorar as camadas individuais para ver como a imagem foi construída. Ver apenas as alterações em uma única camada ajuda a ver as alterações aplicadas por cada estágio de compilação, mesmo que você não tenha acesso ao Dockerfile original.
rebanho
Flocker é um gerenciador de volumes que combina o gerenciamento de containers e seus dados persistentes. Oferece suporte a ambientes com vários hosts, facilitando a migração de volumes entre hosts à medida que os contêineres são reprogramados.
Essa portabilidade garante que os volumes estejam disponíveis onde quer que os contêineres estejam. Os volumes tradicionais do Docker não podem deixar o host em que foram criados, forçando os contêineres a permanecerem em estase também.
O suporte de armazenamento distribuído facilita a transição de contêineres para produção. O Flocker é ideal para contêineres com estado que precisam ser dimensionados em ambientes distribuídos, mantendo o suporte para vários mecanismos de armazenamento. Ele suporta back-ends, incluindo Amazon EBS, Google GCE e OpenStack Block Storage.
Dokku
O Dokku usa o Docker para permitir que você hospede sua plataforma como serviço (PaaS). Inicie os contêineres do Docker automaticamente ao confirmar o código via Git.
Como uma plataforma de aplicativos completa, o Dokku permite mapear domínios, adicionar SSL, implantar vários ambientes por meio de ramificações do Git e configurar serviços de suporte, como bancos de dados. É uma ótima alternativa para plataformas comerciais como Heroku e Firebase que permite manter as implantações de produção em seu hardware.
A configuração de um servidor Dokku permite iniciar aplicativos em contêineres isolados sem aprender todas as complexidades do gerenciamento manual de contêineres. Você pode se concentrar em escrever e confirmar código usando fluxos de trabalho baseados em Git estabelecidos. Adicionar seu servidor Dokku como um Git remoto significa que você pode git push
para implantar alterações, seja localmente no terminal ou como parte de um pipeline de CI.
Hadolin
O Hadolint é um linter do Dockerfile que verifica se as etapas de compilação estão de acordo com as práticas recomendadas. A execução do Hadolint pode descobrir problemas comuns de configuração que tornam suas compilações mais lentas e menos seguras. Hadolint usa ShellCheck internamente para lint também scripts de shell em suas instruções de execução do RUN
.
Você pode baixar o Hadolint como um binário pré-compilado, testá-lo na web ou usar sua própria imagem do Docker. hadolint/hadolint
. Inicie uma verificação fornecendo um caminho Dockerfile para o binário Hadolint:
hadolin Dockerfile
O Hadolint examinará seu Dockerfile em busca de problemas e apresentará os resultados ao seu terminal. Algumas das regras incluídas incluem controle total dos caminhos WORKDIR
, enviando apenas COPY --from
aliases e não alterne para um usuário não root antes do final do Dockerfile. A execução regular do Hadolint resultará em construções de imagem mais seguras e com melhor desempenho que atendem aos padrões da comunidade.
Resumo
O Docker é uma ótima ferramenta de desenvolvimento, mas fica ainda melhor quando combinado com outros projetos populares. As iniciativas da comunidade podem aumentar a segurança de suas imagens, ajudá-lo a identificar problemas em seus Dockerfiles e fornecer GUIs versáteis para gerenciar seus contêineres.
Novas ferramentas estão surgindo constantemente, então vale a pena explorar sites de compartilhamento de código como o GitHub para projetos futuros. O tópico do Docker é um bom ponto de partida para sua exploração.
- Aplicativos de streaming Android Riskware encontrados na Galaxy Store da Samsung
- O que é o i3 Tiling Window Manager e como ele é usado no Linux?
descubra mais conteúdo
O que é um amplificador integrado?
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão Geek
Como executo um Dockerfile no Portainer?
Se você tiver um Dockerfile existente, poderá carregá-lo no Portainer e usá-lo para criar a imagem. No menu, selecione Imagens e clique em Construir uma nova imagem. Em seguida, dê à imagem um nome descritivo (você pode inserir vários nomes), selecione a opção Carregar em Método de compilação e, em seguida, navegue e carregue o Dockerfile.
O Portainer precisa do Docker?
Para adicionar um novo ambiente Linux a uma instalação existente do Portainer Server, consulte as instruções de instalação do Portainer Agent. Para começar, você precisará: A versão mais recente do Docker instalada e funcionando .
O que é o Portainer Docker?
O Portainer é uma ferramenta universal de gerenciamento de contêineres que pode funcionar com o Docker e o Kubernetes para tornar a implantação e o gerenciamento de aplicativos e serviços em contêineres mais fáceis e eficientes. O Portainer possui mais de 650.000 usuários e 21.700 estrelas do GitHub, por isso é amplamente utilizado e popular.
Como adiciono um contêiner Docker ao Portainer?
Adicione um novo contêiner – Documentação do Portainer. No menu, selecione Instâncias de contêiner e clique em Adicionar contêiner . Selecione a assinatura que você deseja usar para o contêiner. Se existirem dois ou mais grupos de recursos, selecione onde deseja implantar o contêiner.