Curso de Docker parte 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.
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.
Último vídeo
Novidades via inbox
Fique por dentro no meu Boletim digital toda semana um conteúdo novo