Arquivos do Blog

Curso de Docker parte 01

curso_docker_01

 

Olá pessoal

Voltando de férias e vamos para um 2018 melhor que 2017, e que seja pior para 2019.

2017 foi sensacional e agora um curso totalmente gratuito e que ajude vocês em 2018.

O formato será diferenciado.

Quero tratar com carinho este curso.

Fiquem a vontade para perguntas e estarei disponível.

OUÇA O PODCAST

O curso terá um podcast com áudio para dar interatividade e dentro do curso alguns videos de instalações e comandos.

Eu quis fazer neste formato diferenciado pois só vídeo não é tão interativo.

Ouvir o áudio, ver os conceitos e comandos no blog e interagir com o vídeo será mais completo.

Acredito que no formato com podcast, blog e vídeo é mais interessante pois dará a expectativa de assimilar melhor e dar mais interatividade.

Muita gente tem que olhar o video ou parar varias vezes para que assimile o comando ou consiga entender.  Então em formato PODCAST,  e VIDEO entendo que será excepcional.

Espero que gostem.

A primeira parte é conceitual e é importante a parte conceitual pois é a essência do conhecimento.

Os livros que me baseei são estes.

 

Acredito que são essenciais para quem vai aprender os comandos e ter o conceito gravado.

https://www.casadocodigo.com.br/products/livro-docker
https://novatec.com.br/livros/primeiros-passos-docker/
https://novatec.com.br/livros/aprendendo-docker/

O que é necessário para aprender docker:

Eu acredito piamente que pelo menos ter familiaridade com console linux

  • Debian ou Ubuntu
    Centos ou Fedora

São distribuições fáceis de usar e o repositório de pacotes são fáceis de manipular

Obviamente os pacotes .deb para Ubuntu e Debian e os pacote .rpm para Centos e Fedora.

Familiaridade com comando yum para os pacotes RPM e apt para pacotes .deb.

Saber compilar pacotes .tgz no linux.

CONCEITO:

Afinal o que é docker:  Nas minhas palavras é isolar um serviço ou enjaular usando container (chroot) usando uma base do kernel do sistema operacional linux e também Windows. O Windows Server 2016 também tem uma parceria e tem nativo docker.

Mais conceitual e importante ter o conceito pois o Docker já existe algum tempo mas desde 2008 ganhou popularidade.

Você empacota a aplicação web desenvolvida ou um serviço em um CONTÊINER (Pasta) e leva para qualquer maquina fisica, qualquer maquina virtual, qualquer ambiente virtual, qualquer nuvem (AZURE, AWS, Google Cloud Platform).

O que eu considero, é uma plataforma (PaaS).

Foi feito para aplicações inteligentes, de fácil crescimento e elasticidade. É preciso saber que nem toda aplicação tradicional precisa ser estudada e arquitetada, ou reescrever-la para que funcione em arquitetura de Docker.

Muita gente confunde que é virtualização de sua aplicação, apesar de ele funcionar virtualizado o conceito é isolar sua aplicação em um CONTÊINER.

Segundo o livro aprendendo linux pagina 25

LXC (Linux Container) exitem desde o kernel 2.6.26, que foi distribuído a partir de julho de 2008, vem por meio de sua arquitetura baseada em API, utilização de imagem por camada com a técnica de copia e gravação.

É um sistema operacional GUEST compartilhando recursos do KERNEL do sistema operacional hospedeiro.

Utiliza o CGROUP (CONTROL GROUPS), preste atenção pois isso faz parte do conhecimento de linux veja em https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/6/html/resource_management_guide/ch01.

Veja que para aprender Docker precisa ter pelo menos oconhecimento dos comandos de linux.

Resumindo o control groups do linux é um recurso do kernel do linux obviamente responsável por isolar os recursos como rede, memoria, disco e cpu.

NAMESPACE: é a funcionalidade que permite definir uma área. Leia aqui e fique a noite lendo assim a assimilação é mais interessante para ter o conceito https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/6/pdf/resource_management_guide/Red_Hat_Enterprise_Linux-6-Resource_Management_Guide-pt-BR.pdf

Veja que os detalhes são grandes.

OBS: Não aprenda antes rancher swarm e kubernetes sem antes aprender a essencia.

Muita gente aprende antes os orquestradores no qual é sensacional, mas quando da pau no ambiente o troubleshooting também é mais difícil de entender pois entender fica mais complicado.

Eu vou e volto na sua leitura de propósito para que você guarde então veja o comparativo da imagem de como funciona virtualização e contêiner.

Veja a diferença das camadas acima que em maquina virtual em resumo você tem um kernel para cada maquina virtual e você isola por maquina.

No conceito de docker você isola os apps por contêiner compartilhando o kernel.

E quais são as vantagens:

  • Padroniza ambientes de desenvolvimento, testes e produção.
  • melhora a utilização dos recursos fisicos
  • facilita a recuperação de dados, como versionamentos das aplicações.
  • faz isolamento das aplicações e configurações sem ficar mexendo constantemente.
  • além do uso em ambiente fisico e virtual, os ambientes de nuvem também são espetaculares para orquestração.

 

As desvantagens:

  • IO de disco é enorme então, use bons discos como SSD.
  • Se o host docker cai todos os contêineres nele caem também.
  • Dificulta os troubleshooting, já que adicionamos varias camadas de investigação.

O cara DEVOP ou DEV ou INFRA precisa ter total conhecimento da arquitetura do ambiente.

Resumindo:

Conteineres: São gerenciados por o docker engine a partir do linux LXC a partir da versão 1 que substituiu  o LXC pela Libcontainer (Open Container iniciative), veja em https://www.opencontainers.org/.

Engine: é o daemon que gerencia a construção e execução dos containers, faz o trabalho de criar o CHROOT e controlar os recursos de rede, cpu memoria e outros.

Veja esta materia: https://www.vivaolinux.com.br/dica/Fazendo-chroot-facilmente

Cliente: a engine expõe uma API onde, com um cliente consome o socket ou a api ele passa os comando para o daemon (docker engine).

Eu acredito que esta primeira parte vocês irão conseguir assimilar o conceito.

Irei tentar colocar semanalmente e as outras aulas será mais mão na massa.

Estarei postando em outros canais e fiquem ligados.

Como é publico pode ser compartilhado, mas com uma menção aos canais postados.

Acesse os sites que sitei acima e até a próxima.

 

 

randieri.com

Il blog di Cristian Randieri

TEC OFFICE PRODUTIVO

Tec Office Produtivo é um grupo de treinamentos, dicas e tutorias de informática sobre aplicativos utilizados em escritórios.

Escadas Especiais

Projetos, fabricação e instalação de escadas

Jaqueline Ramos

Devops & Cloud

Blog do Douglas Romão

MVP Office Servers and Services | Especialista .NET/SharePoint

Thiago Lúcio - Desenvolvimento Web/ Web Designer

Blog de Thiago Lúcio Bittencourt. Web Designer e Desenvolvedor Front-end.

🔵Fábio FOL

Gestão Estratégica Corporativa de uma forma Executiva e Prática