Docker (software)
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]
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 | )
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 |
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
editarO 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
editarO 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
- ↑ 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
- ↑ «Docker frequently asked questions (FAQ)». 2 de março de 2019
- ↑ «Select a storage driver documentation». Docker documentation. Consultado em 7 de dezembro de 2016. Cópia arquivada em 6 de dezembro de 2016
- ↑ «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
- ↑ a b «What is a Container?». docker.com (em inglês). Docker, Inc. Consultado em 13 de maio de 2019
- ↑ 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
- ↑ «Docker: A 'Shipping Container' for Linux Code». linux.com (em inglês). Consultado em 8 de outubro de 2015
- ↑ Dan Walsh. «Yet Another Reason Containers Don't Contain: Kernel Keyrings». projectatomic.io. Consultado em 13 de abril de 2015
- ↑ Steven J. Vaughan-Nichols (11 de junho de 2014). «Docker libcontainer unifies Linux container powers». ZDNet. Consultado em 30 de julho de 2014
- ↑ «libcontainer - reference implementation for containers». github.com. Consultado em 30 de julho de 2014
- ↑ «Docker 0.9: Introducing execution drivers and libcontainer». docker.com. 10 de março de 2014. Consultado em 20 de janeiro de 2015