6

Click here to load reader

Apresentação docker

Embed Size (px)

Citation preview

Page 1: Apresentação docker

Docker

ArquiteturaHub de imagens

ImagesDockerfilesContainersReferências

Marcelo M. Fleury <[email protected]>

Page 2: Apresentação docker

Arquitetura

● Utiliza o LXC– Linux Kernel >= 2.6.24

Page 3: Apresentação docker

Arquitetura 2

● Libcontainer– Docker >= 0.9

Page 4: Apresentação docker

Hub de imagens

● Repositório central de Dockerfiles/images– https://registry.hub.docker.com/

– Contas de usuário(criar convisoappsec?)

– Integrado com github

– Possibilidade de● Compartilhar e pesquisar imagens● Push image● Pull image

Page 5: Apresentação docker

Images

● Podemos comparar a um .iso de uma distro● Entretanto:

– Hub registry● Search, share, pull, push

– Trabalhar com herança de imagens

– Gerar tags de imagens baseado em outras imagens

– Gerar imagens a partir de um container com commits

– Reaproveitamento de espaço e processo de build/deploy

– Possibilidade de salvar(save) e carregar imagens(load) com tarballs

Page 6: Apresentação docker

Dockerfiles

marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep -v '^#' | cut -d' ' -f1 | sort | uniq

● ADD● CMD● ENV● EXPOSE● FROM● MAINTAINER● RUN● VOLUME● WORKDIR

Page 7: Apresentação docker

Dockerfiles 2

marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep '^#' | cut -d' ' -f1 | sort | uniq

● #ENTRYPOINT● #CMD● #ONBUILD● #USER

Page 8: Apresentação docker

Dockerfile 3

● Exemplos nossos– https://github.com/convisoappsec/accuracy/blob/master/D

ockerfile– https://github.com/convisoappsec/accuracy/blob/master/D

ockerfile.conviso_ubuntu– Sugestão:

● Imagem base ubuntu com– Hardening– Tunning SO– Monitoring tool (MMONIT ?)– Accounts padrão/ssh_keys– Repositórios padrões– Pacotes padrões

Page 9: Apresentação docker

Containers

● Instalações/instancias de imagens● Ambiente totalmente segregado, inclusive o

ambiente de rede(ip/rede própria)● Possibilidade de diff(filesystem) entre

containers● Realizar NAT de portas(port) host<>container● Realizar linking entre containers, sem a

necessidade de NAT, com trafego cifrado● Montar e compartilhar pastas entre containers

e host

Page 10: Apresentação docker

Containers 2

● Possibilidade de pausar(pause) e retornar(unpause) todos os processos sem perca de estados

● Possibilidade de gerar snapshots(imagens) com commits

● Rodar comandos(run), startar(start), stopar(stop) e restartar(restart).

● Possibilidade de importar(import) e exportar(export) os dados de um container em um tarball

● Informações com os comandos: inspect, ps, logs

Page 11: Apresentação docker

Referência: Primeiros passos

● https://www.digitalocean.com/community/tutorials/como-instalar-e-utilizar-o-docker-primeiros-passos-pt

● http://paynedigital.com/articles/2013/11/introduction-to-docker

Page 12: Apresentação docker

Referência: Melhores práticas

● http://crosbymichael.com/dockerfile-best-practices.html

● https://docs.docker.com/articles/dockerfile_best-practices/

● http://www.mulle-kybernetik.com/weblog/2014/a_little_experiment_to_undesta.html

Page 13: Apresentação docker

Referência: Arquitetura

● http://docs.docker.com/introduction/technology/● https://docs.docker.com/introduction/understan

ding-docker/● http://pt.slideshare.net/rajdeep/docker-

architecturev2

Page 14: Apresentação docker

Referência:

● https://docs.docker.com/articles/basics/● https://docs.docker.com/installation/ubuntulinux/● https://docs.docker.com/userguide/dockerlinks/● https://docs.docker.com/articles/networking/● https://docs.docker.com/userguide/dockervolum

es/

Page 15: Apresentação docker

Referência: News

● http://www.infoq.com/news/2014/03/docker_0_9

● http://stackoverflow.com/questions/17989306/what-does-docker-add-to-just-plain-lxc

● http://www.flockport.com/lxc-vs-lxd-vs-docker-making-sense-of-the-rapidly-evolving-container-ecosystem/

Page 16: Apresentação docker

Segurança: Virtualização e containers

● http://www.cvedetails.com/product/28125/Docker-Docker.html?vendor_id=13534

● https://titanous.com/posts/docker-insecurity● http://askubuntu.com/questions/477551/how-

can-i-use-docker-without-sudo● https://docs.docker.com/articles/security/#docke

r-daemon-attack-surface

Page 17: Apresentação docker

Referência: Virtualização e containers

● https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Virtualization/pr01s05.html

● http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf

● http://www3.nccu.edu.tw/~yuf/slides/kvm.pdf● http://penta.debconf.org/dc8_schedule/attachments/6

4_dc8-virt.pdf● http://en.wikipedia.org/wiki/LXC