Docker (software)

software para distribuição de aplicações em containers

Docker é um conjunto de produtos de plataforma como serviço (PaaS) que usam virtualização de nível de sistema operacional para entregar software em pacotes chamados contêineres.[1] Os contêineres são isolados uns dos outros e agrupam seus próprios softwares, bibliotecas e arquivos de configuração. Eles podem se comunicar uns com os outros por meio de canais bem definidos.[2] Todos os contêineres são executados por um único kernel do sistema operacional[3] e, portanto, usam menos recursos do que as máquinas virtuais.[4][5]

Docker
Autor Solomon Hykes
Desenvolvedor Docker, Inc.
Lançamento 13 de março de 2013 (11 anos)
Versão estável 25.0.4 (7 de março de 2024; há 8 meses)
Escrito em Go
Sistema operacional Linux, Windows e Mac
Gênero(s) virtualização tipo contêiner
Licença Licença Apache 2.0 ou Proprietária (no caso do "Docker Enterprise")
Página oficial www.docker.com

O serviço tem níveis gratuitos e premium. O software que hospeda os contêineres é denominado Docker Engine.[5] Foi iniciado em 2013 e é desenvolvido pela Docker, Inc.[6]

Visão geral

editar

O Docker é uma alternativa de virtualização em que o kernel da máquina hospedeira é compartilhado com a máquina virtualizada ou o software em operação, portanto um desenvolvedor pode agregar a seu software a possibilidade de levar as bibliotecas e outras dependências do seu programa junto ao software com menos perda de desempenho do que a virtualização do hardware de um servidor completo. Assim, o Docker torna operações em uma infraestrutura como serviços web mais intercambiável, eficientes e flexíveis.

Segundo uma análise da 451 Research, o "Docker é uma ferramenta que pode empacotar um aplicativo e suas dependências em um recipiente virtual que pode ser executado em qualquer servidor Linux. Isso ajuda a permitir flexibilidade e portabilidade de onde o aplicativo pode ser executado, quer nas instalações, nuvem pública, nuvem privada, entre outros."[7]

Operação

editar

O suporte para espaços de nomes do núcleo do Linux na maioria das vezes[8] isola uma visão da aplicação do ambiente operacional, incluindo árvores de processo, rede, IDs de usuário e sistemas de arquivos montados, uma vez que os cgroups do núcleo fornecem limitação de recursos, incluindo a UCP, memória, bloco de E/S e rede. Desde a versão 0.9, o Docker inclui a biblioteca libcontainer como seu próprio mecanismo de usar diretamente os recursos de virtualização fornecidos pelo núcleo do Linux, além de usar interfaces de virtualização abstrata via libvirt, LXC (Linux Containers) e systemd-nspawn.[9][10][11]

Referências

  1. O'Gara, Maureen (26 de julho de 2013). «Ben Golub, Who Sold Gluster to Red Hat, Now Running dotCloud». SYS-CON Media. Consultado em 9 de agosto de 2013. Cópia arquivada em 13 de setembro de 2019 
  2. «Docker frequently asked questions (FAQ)». 2 de março de 2019 
  3. «Select a storage driver documentation». Docker documentation. Consultado em 7 de dezembro de 2016. Cópia arquivada em 6 de dezembro de 2016 
  4. «Docker Documentation: Kernel Requirements». docker.readthedocs.org. 4 de janeiro de 2014. Consultado em 20 de agosto de 2014. Cópia arquivada em 21 de agosto de 2014 
  5. a b «What is a Container?». docker.com (em inglês). Docker, Inc. Consultado em 13 de maio de 2019 
  6. Ratan, Vivek (8 de fevereiro de 2017). «Docker: A Favourite in the DevOps World». Open Source For U (em inglês). Consultado em 14 de junho de 2017 
  7. «Docker: A 'Shipping Container' for Linux Code». linux.com (em inglês). Consultado em 8 de outubro de 2015 
  8. Dan Walsh. «Yet Another Reason Containers Don't Contain: Kernel Keyrings». projectatomic.io. Consultado em 13 de abril de 2015 
  9. Steven J. Vaughan-Nichols (11 de junho de 2014). «Docker libcontainer unifies Linux container powers». ZDNet. Consultado em 30 de julho de 2014 
  10. «libcontainer - reference implementation for containers». github.com. Consultado em 30 de julho de 2014 
  11. «Docker 0.9: Introducing execution drivers and libcontainer». docker.com. 10 de março de 2014. Consultado em 20 de janeiro de 2015 

Ligações externas

editar
  Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.