Pesquisa de site

Instalando o docker com Ubuntu 16.04 LTS, Mint 17 e CentOS 7


Uma breve introdução à virtualização

Hoje aprenderemos a instalar o docker com Ubuntu, mint e CentOS 7 Linux.  Antes da evolução do conceito de virtualização, para executar um aplicativo era necessário um servidor dedicado,  se você quisesse  executar 20 aplicativos como serviços DNS de servidor de e-mail, servidor web ou outra coisa, era necessário comprar 20 servidores dedicados, cada aplicação dificilmente consumia de 5 a 10% da capacidade total da CPU, portanto, era um desperdício total de recursos. Para se livrar desse desperdício de recursos foi introduzido o conceito de virtualização, onde os hipervisores construíram uma camada no hardware onde múltiplas máquinas virtuais podem ser instaladas e se comportam e têm o sabor de verdadeiros servidores independentes. Este conceito de virtualização foi uma revolução na utilização de recursos e no processo de redução de custos.

Uma breve introdução aos contêineres

Embora a virtualização baseada em hipervisor tenha mudado o jogo, logo percebeu-se que havia certos problemas mesmo com esse conceito de virtualização de hipervisor, sem dúvida fomos capazes de executar vários sistemas operacionais em uma única CPU, mas ainda havia a necessidade de vários sistemas operacionais para vários serviços e nem todos os sistemas operacionais eram livres para formar a licença que ainda precisavam para serem adquiridos; além disso, cada sistema operacional virtual consome uma grande quantidade de CPU, disco rígido e RAM. Para superar o problema do hipervisor sedento por recursos, um novo conceito de virtualização em nível de sistema operacional foi introduzido.

Podemos considerar os contêineres como pequenas cápsulas que possuem seu próprio ambiente operacional individual que compartilha o kernel do sistema operacional pai e esses contêineres se comportarão como algum sistema operacional independente, eles terão seu próprio diretório raiz e outros sistemas de arquivos, propriedades de rede e processos como init ou systemd, eles têm sua própria hierarquia de processos e processos em execução em um contêiner não podem enviar sinais para outro processo em execução em um contêiner separado e executam seus aplicativos de forma independente, assim como estavam em execução em um ambiente virtual baseado em hipervisor. Podemos declarar a conteinerização como “ Virtualização no nível do sistema operacional”, a CPU é instalada diretamente na CPU e os  recursos  do kernel do sistema operacional pai são compartilhados pelas instâncias do espaço do usuário. Todos os contêineres compartilham recursos de CPU, mas seus limites são definidos através do namespace do kernel, partições são definidas para cada contêiner para que possam usar recursos e bibliotecas dentro de seus limites. Outra característica importante dos containers é o cgroup ou grupo de controle que pode agrupar processos de containers e pode definir qual porcentagem esse grupo de processos pode consumir, essa porcentagem de compartilhamento de recursos é bastante flexível e pode diminuir ou aumentar conforme e quando necessário.

Uma breve história do Docker

Docker é um tempo de execução de contêiner e também uma empresa, ele combina todos os recursos do contêiner e forma um produto, formalmente era um projeto interno da empresa  dotClous que fornece Plataforma como serviço, foi iniciado por Solomon Hykes na França, você pode dizer que ele é o pai do Docker, o docker é escrito na linguagem Google go, foi lançado pela primeira vez em março de 2013 com uma versão 0.9. Docker é licenciado como código aberto. Inicialmente, o docker era baseado em contêineres LXC, mas surge algum problema: eles não podem controlar o desenvolvimento do LXC. Então eles escrevem um novo recurso de driver chamado libcontainer. tornou-se popular muito em breve, mais de 17.000 desenvolvedores estão contribuindo para o docker, que está aumentando de 200 a 300 usuários por mês, mais de mil aplicativos suportam docker, Red Hat, IBM, Cisco etc. são os principais contribuidores do docker, tem mais de 2.600 estrelas no GitHub e o 20º projeto GitHub mais estrelado. Chef, puppet ou open stalk suporta docker, além disso, serviços de nuvem AWS, rackspace e azure fornecem suporte para docker. Docker está fornecendo treinamento, documentação e suporte.

Instalando o docker com Ubuntu 16.04

Temos um novo sistema operacional Ubuntu 16.04 instalado, atualize o sistema primeiro

apt-get update

Instalar o docker é uma tarefa muito fácil, execute o comando

apt-get install docker.io

Após a instalação, verifique o status do serviço docker

/etc/init.d/docker status

Verifique a versão do docker

docker version

Habilite para executar o docker no momento da inicialização

update-rc.d docker defaults

Baixe o contêiner docker do Ubuntu

docker pull ubuntu

Verifique o contêiner baixado do Ubuntu

docker images

Para entrar nesse contêiner do Ubuntu, dê o seguinte comando e você entrará automaticamente, a opção -i o tornará interativo e -t atribuirá tty ao contêiner.

docker run -i -t ubuntu

Para sair do contêiner, digite exit.

Procure pelo contêiner CentOS

docker search centos

O Centos não está instalado, vamos tentar executar esse contêiner, você pode notar que ele começará a instalar a imagem do centos

docker run -it centos /bin/bash

Liste as imagens instaladas novamente!

Se quiser sair do contêiner sem eliminá-lo, pressione Ctrl+P+Q, você sairá do contêiner sem interrompê-lo, execute o seguinte comando e verá que o contêiner ainda está ativo após sair com Ctrl +P+Q.

docker ps

Instalar o docker com CentOS 7 não é tão diferente do que era no Ubuntu 16.04, instale uma nova versão do CentOS e atualize

yum update

Instalar janela de encaixe

yum install docker

Verifique a versão do docker quando ele está instalado, você pode notar que a versão do docker é diferente do docker instalado no Ubuntu

Puxar imagem fedroa para docker

Vamos fazer algumas tarefas com o instalador do contêiner fedora

Instale o Apache no contêiner Fedora usando o comando dnf

Você pode notar que os comandos do fedora estão funcionando perfeitamente no ambiente CentOS 7.

Verifique a versão do kernel dentro do contêiner fedora, o kernel centos 7 pode ser notado, o que significa que estamos compartilhando o espaço de usuário do kernel do CentOS.

Agora verifique o sistema operacional instalado

Instalando Docker com Mint 17 Linux

Adicionar repositório à fonte APT

 # sudo echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list

Chave de importação

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

apt-get update

Instalar janela de encaixe

apt-get install docker.io

Quando tentei capturar uma imagem do centos, recebi o seguinte erro.

# docker pull centos 
FATA[0000] Post http:///var/run/docker.sock/v1.18/images/create?fromImage=centos%3Alatest: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS? 

Para resolver este erro, precisamos adicionar nosso usuário ao grupo docker

sudo usermod -a -G docker $USER

Docker está funcionando agora, extraia a imagem do Ubuntu

Qual é o futuro do projeto docker?

Definitivamente, o docker está eliminando a virtualização baseada em hiperversor com muita frequência. No futuro, os fabricantes de CPU começarão a fornecer assistência em nível de chip para contêineres e eles começarão a vir como suporte incorporado, o suporte em nível de chip tornará a virtualização em nível de sistema operacional mais segura e mais eficiente, existe a possibilidade de que vários estarão disponíveis contêineres que se complementarão e poderão se comunicar entre si na forma de um único aplicativo, este será um conceito mais independente e modular de desenvolvimento de aplicativos. Há também outra possibilidade de que nenhum grande processamento seja necessário para SMBs porque os aplicativos baseados em docker funcionarão mesmo em pequenas configurações de hardware, o que sem dúvida aumentará a função do tipo raspberrypi de hardware embarcado Linux. Divirta-se!!

Artigos relacionados: