O documento apresenta uma introdução ao Docker, discutindo sua arquitetura baseada em contêineres, vantagens em relação às máquinas virtuais, histórico e utilização atual. O Docker permite isolar e executar aplicações de forma leve através de contêineres, eliminando problemas de compatibilidade entre sistemas.
Docker: Introdução à Conteinerização de Apps e Nuvem.
Introdução ao Docker
1. Docker
Minicurso: Introdução ao Docker
SNCT - Semana Nacional de Ciência e Tecnologia 2017
Hylson Vescovi Netto
IFC Blumenau - 26/10/2017, 14hs às 18hs, Lab.D06
1 / 26
2. Docker
Introdução
Virtualização e computação em nuvens
Máquinas virtuais (MV)
Disponibilização das MV’s na Internet: provedores em
nuvem.
Rápido provisionamento de recursos
Elasticidade de recursos.
Custos sob demanda.
2 / 26
3. Docker
Introdução
Contêineres
Um contêiner é um conjunto de processos isolados de outros
processos ou contêineres executando no sistema
[Tarasov et al., 2017]. Contêineres fornecem um
provisionamento melhor do que máquinas virtuais.
Virtualização em nível de sistema: comando chroot do
Linux.
Sistema de arquivo em camadas: imagens pequenas.
3 / 26
4. Docker
Introdução
Tecnologias da virtualização em nível de sistema (disponíveis no
kernel do linux)
namespaces: consiste na alocação de recursos para um
processo sob a marcação de um nome específico (um
rótulo). A partir de um rótulo não se pode enxergar
recursos disponíveis para outros rótulos: provê
isolamento.
cgroups: provê o gerenciamento de recursos disponíveis a
um contêiner. Permite definir, por exemplo, que um
contêiner vai fazer uso de 128MB de RAM. Pode-se
adicionar recursos na medida do necessário: provê
elasticidade.
[Anderson, 2015]
4 / 26
7. Docker
Introdução
Histórico dos contêineres (III)
VServer linux: http://linux-vserver.org
Warden: https://cloudfoundry.org/
lmctfy: versão aberta de implementação de contêiner da
Google. Migrada para a libcontainer em Maio de 2015.
3
3
http://2.bp.blogspot.com/-dKDM5OpKpGk/VMNd_l3_KQI/
AAAAAAAAABg/t6EsdvqqI8Q/s1600/LXC%2BTools.tiff
7 / 26
22. Docker
Introdução
Conclusões
Uso de contêineres é uma tendência.
Uso de contêineres é uma realidade.
Vamos praticar!
Obtenha o roteiro e estes slides em:
www.hylson.com/new/tmp/SNCT2017
Avalie este minicurso em www.hylson.com/avalie
A senha é: docker
22 / 26
23. Docker
Introdução
Referências: I
Anderson, C. (2015).
Docker [software engineering].
IEEE Software, 32(3):102–c3.
Beserra, D., Moreno, E. D., Endo, P. T., Barreto, J., Sadok,
D., and Fernandes, S. (2015).
Performance analysis of lxc for hpc environments.
In Complex, Intelligent, and Software Intensive Systems
(CISIS), 2015 Ninth International Conference on, pages
358–363. IEEE.
23 / 26
24. Docker
Introdução
Referências: II
Felter, W., Ferreira, A., Rajamony, R., and Rubio, J. (2015).
An updated performance comparison of virtual machines
and linux containers.
In Performance Analysis of Systems and Software
(ISPASS), 2015 IEEE International Symposium On, pages
171–172. IEEE.
Kumar, K. and Kurhekar, M. (2016).
Economically efficient virtualization over cloud using docker
containers.
In Cloud Computing in Emerging Markets (CCEM), 2016
IEEE International Conference on, pages 95–100. IEEE.
24 / 26
25. Docker
Introdução
Referências: III
Seo, K.-T., Hwang, H.-S., Moon, I.-Y., Kwon, O.-Y., and
Kim, B.-J. (2014).
Performance comparison analysis of linux container and
virtual machine for building cloud.
Advanced Science and Technology Letters, 66:105–111.
Tarasov, V., Rupprecht, L., Skourtis, D., Warke, A.,
Hildebrand, D., Mohamed, M., Mandagere, N., Li, W.,
Rangaswami, R., and Zhao, M. (2017).
In search of the ideal storage configuration for docker
containers.
25 / 26