Click here to load reader
Upload
marcelo-fleury
View
57
Download
0
Embed Size (px)
Citation preview
Docker
ArquiteturaHub de imagens
ImagesDockerfilesContainersReferências
Marcelo M. Fleury <[email protected]>
Arquitetura
● Utiliza o LXC– Linux Kernel >= 2.6.24
Arquitetura 2
● Libcontainer– Docker >= 0.9
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
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
Dockerfiles
marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep -v '^#' | cut -d' ' -f1 | sort | uniq
● ADD● CMD● ENV● EXPOSE● FROM● MAINTAINER● RUN● VOLUME● WORKDIR
Dockerfiles 2
marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep '^#' | cut -d' ' -f1 | sort | uniq
● #ENTRYPOINT● #CMD● #ONBUILD● #USER
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
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
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
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
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
Referência: Arquitetura
● http://docs.docker.com/introduction/technology/● https://docs.docker.com/introduction/understan
ding-docker/● http://pt.slideshare.net/rajdeep/docker-
architecturev2
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/
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/
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
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