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
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
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
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
Docker
Introdução
Histórico dos contêineres
1
1
https://www.slideshare.net/davidcurrie/
ibm-websphere-application-server-traditional-and-docker
5 / 26
Docker
Introdução
Histórico dos contêineres (II)
2
2
https://secure.meetupstatic.com/photos/event/8/c/3/e/
highres_416315902.jpeg
6 / 26
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
Docker
Introdução
Histórico do docker
4
4
https://www.slideshare.net/davidcurrie/
ibm-websphere-application-server-traditional-and-docker
8 / 26
Docker
Introdução
Matrix of Hell
5
5
https://image.slidesharecdn.com/
dockerlpc2014cristian-141022130848-conversion-gate02/95/
docker-and-the-linux-kernel-3-638.jpg?cb=1413983410
9 / 26
Docker
Introdução
Another matrix of Hell
6
6
https://image.slidesharecdn.com/
dockerlpc2014cristian-141022130848-conversion-gate02/95/
docker-and-the-linux-kernel-4-638.jpg?cb=1413983410
10 / 26
Docker
Introdução
Docker eliminates the matrix of Hell
7
7
http://pointful.github.io/docker-intro/docker-img/
eliminates-matrix-from-hell.png
11 / 26
Docker
Introdução
Utilização do docker
8
8
https://www.datadoghq.com/docker-adoption/
12 / 26
Docker
Introdução
Utilização do docker (II)
9
9
https://www.datadoghq.com/docker-adoption/
13 / 26
Docker
Introdução
Utilização do docker (III)
10
10
https://www.datadoghq.com/docker-adoption/
14 / 26
Docker
Introdução
Arquitetura de máquinas virtuais e contêineres
11
11
https://www.serverpronto.com/spu/wp-content/uploads/
2016/05/MJHfm1c.jpg
15 / 26
Docker
Introdução
Arquitetura de máquinas virtuais e contêineres (II)
12
12
[Beserra et al., 2015]
16 / 26
Docker
Introdução
Desempenho de contêineres: tempo de inicialização
13
13
[Seo et al., 2014]
17 / 26
Docker
Introdução
Desempenho de contêineres: rodando mysql
14
14
[Felter et al., 2015]
18 / 26
Docker
Introdução
Desempenho de contêineres: rede
15
15
[Kumar and Kurhekar, 2016]
19 / 26
Docker
Introdução
Contêineres na Amazon
16
16
https://aws.amazon.com/pt/ecs/
20 / 26
Docker
Introdução
Contêineres na Google
17
17
https://cloud.google.com/container-engine/?hl=pt-br
21 / 26
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
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
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
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
FIM
Obrigado!
hylson.com

Introdução ao Docker