Docker (software)

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á 5 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

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]

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

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

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

  • Página oficial
Ícone de esboço Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e
  • v
  • d
  • e
Software de virtualização
Virtualização de hardware
(hipervisores)
Nativo
  • Adeos
  • CP/CMS
  • Hyper-V
  • KVM
    • Red Hat Enterprise Virtualization
  • LDoms / Oracle VM Server for SPARC
  • Logical Partition (LPAR)
  • LynxSecure
  • PikeOS
  • Proxmox VE
  • SIMMON
  • VMware ESXi
    • VMware vSphere
    • vCloud
  • VMware Infrastructure
  • Xen
    • Oracle VM Server for x86
    • XenClient
  • XtratuM
  • z/VM
Hospedado
Especializado
  • Basilisk II
  • bhyve
  • Bochs
  • Cooperative Linux
  • DOSBox
  • DOSEMU
  • PCem
  • PikeOS
  • SheepShaver
  • SIMH
  • Windows on Windows
    • Virtual DOS machine
  • Win4Lin
Independente
Ferramentas
  • Ganeti
  • oVirt
  • System Center Virtual Machine Manager
  • Virtual Machine Manager
Virtualização em nível
de sistema operacional
Contêineres de SO
  • FreeBSD jail
  • iCore Virtual Accounts
  • Linux-VServer
  • lmctfy
  • LXC
  • OpenVZ
  • Solaris Containers
  • Workload Partitions
Contêineres de Aplicativo
  • Docker
  • rkt
Recursos do núcleo
  • cgroups
  • Namespaces
  • seccomp
Orquestração
Virtualização de desktops
Virtualização de aplicativos
Virtualização de rede
  • Distributed Overlay Virtual Ethernet (DOVE)
  • NVGRE
  • Open vSwitch
  • Virtual security switch
  • Virtual Extensible LAN (VXLAN)