SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Docker
Arquitetura
Hub de imagens
Images
Dockerfiles
Containers
Referências
Marcelo M. Fleury <mfleury@conviso.com.br>
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/tutoria
ls/como-instalar-e-utilizar-o-docker-primeiros-
passos-pt
● http://paynedigital.com/articles/2013/11/introduc
tion-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_experimen
t_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/w
hat-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/Dock
er-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/p
r01s05.html
● http://www.vmware.com/files/pdf/VMware_paravirtual
ization.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

Mais conteúdo relacionado

Mais procurados

Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers DockerMatheus Fidelis
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerStefan Teixeira
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Renato Groff
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeRoberto Hashioka
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 

Mais procurados (20)

Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de Docker
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Docker
DockerDocker
Docker
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 

Destaque

Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engineHudson Brendon
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Atividade5
Atividade5Atividade5
Atividade5abramo
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerLucas Arbiza
 
Cloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor VidalCloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor VidaliMasters
 
Serviços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtualServiços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtualshsouza
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerLuan Cestari
 
Jenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devopsJenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devopsDaniel Fernandes
 

Destaque (14)

Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engine
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Atividade5
Atividade5Atividade5
Atividade5
 
DevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e DockerDevOps e redes -- SDN NFV e Docker
DevOps e redes -- SDN NFV e Docker
 
Cloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor VidalCloud: Container Service In Action, por Heitor Vidal
Cloud: Container Service In Action, por Heitor Vidal
 
Global Azure Bootcamp 2015 Curitiba
Global Azure Bootcamp 2015 CuritibaGlobal Azure Bootcamp 2015 Curitiba
Global Azure Bootcamp 2015 Curitiba
 
Serviços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtualServiços em nuvem para sua infraestrutura virtual
Serviços em nuvem para sua infraestrutura virtual
 
Gerenciando Implementação de Projetos de CLOUD
Gerenciando Implementação de Projetos de CLOUDGerenciando Implementação de Projetos de CLOUD
Gerenciando Implementação de Projetos de CLOUD
 
Tcc obz -
Tcc obz - Tcc obz -
Tcc obz -
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com Docker
 
Jenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devopsJenkins além da integração contínua - práticas de devops
Jenkins além da integração contínua - práticas de devops
 
projeto_daniel
projeto_danielprojeto_daniel
projeto_daniel
 

Semelhante a Docker: Arquitetura, Imagens, Dockerfiles e Containers

Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresCarlos Andre Fernandes
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em PortuguêsOtavio Salvador
 

Semelhante a Docker: Arquitetura, Imagens, Dockerfiles e Containers (20)

Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Docker
DockerDocker
Docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Utilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.JsUtilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.Js
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
 

Mais de Marcelo Fleury

Desenvolvimento seguro
Desenvolvimento seguroDesenvolvimento seguro
Desenvolvimento seguroMarcelo Fleury
 
Processos de desenvolvimento de software
Processos de desenvolvimento de softwareProcessos de desenvolvimento de software
Processos de desenvolvimento de softwareMarcelo Fleury
 
GraoJS - full stack mvc nodejs 2015 7m
GraoJS - full stack mvc nodejs 2015 7mGraoJS - full stack mvc nodejs 2015 7m
GraoJS - full stack mvc nodejs 2015 7mMarcelo Fleury
 
GraoJS – A full stack MVC NodeJS LT
GraoJS – A full stack MVC NodeJS LTGraoJS – A full stack MVC NodeJS LT
GraoJS – A full stack MVC NodeJS LTMarcelo Fleury
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkMarcelo Fleury
 
Kdc spoofing com kerberos mit
Kdc spoofing com kerberos mitKdc spoofing com kerberos mit
Kdc spoofing com kerberos mitMarcelo Fleury
 
Open ldap criando e explorando um overlay
Open ldap   criando e explorando um overlayOpen ldap   criando e explorando um overlay
Open ldap criando e explorando um overlayMarcelo Fleury
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceMarcelo Fleury
 
See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010Marcelo Fleury
 
See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010Marcelo Fleury
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaMarcelo Fleury
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 

Mais de Marcelo Fleury (14)

Desenvolvimento seguro
Desenvolvimento seguroDesenvolvimento seguro
Desenvolvimento seguro
 
Processos de desenvolvimento de software
Processos de desenvolvimento de softwareProcessos de desenvolvimento de software
Processos de desenvolvimento de software
 
Icoop v2
Icoop v2Icoop v2
Icoop v2
 
GraoJS - full stack mvc nodejs 2015 7m
GraoJS - full stack mvc nodejs 2015 7mGraoJS - full stack mvc nodejs 2015 7m
GraoJS - full stack mvc nodejs 2015 7m
 
GraoJS – A full stack MVC NodeJS LT
GraoJS – A full stack MVC NodeJS LTGraoJS – A full stack MVC NodeJS LT
GraoJS – A full stack MVC NodeJS LT
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS framework
 
Kdc spoofing com kerberos mit
Kdc spoofing com kerberos mitKdc spoofing com kerberos mit
Kdc spoofing com kerberos mit
 
Open ldap criando e explorando um overlay
Open ldap   criando e explorando um overlayOpen ldap   criando e explorando um overlay
Open ldap criando e explorando um overlay
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSource
 
See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010
 
See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
 
Segurança em SOA
Segurança em SOASegurança em SOA
Segurança em SOA
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 

Docker: Arquitetura, Imagens, Dockerfiles e Containers

  • 2. Arquitetura ● Utiliza o LXC – Linux Kernel >= 2.6.24
  • 4. 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
  • 5. 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
  • 6. Dockerfiles marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep -v '^#' | cut -d' ' -f1 | sort | uniq ● ADD ● CMD ● ENV ● EXPOSE ● FROM ● MAINTAINER ● RUN ● VOLUME ● WORKDIR
  • 7. Dockerfiles 2 marcelo@enjoyit:~/Projetos/accuracy$ cat Dockerfile* | grep '^#' | cut -d' ' -f1 | sort | uniq ● #ENTRYPOINT ● #CMD ● #ONBUILD ● #USER
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Referência: Primeiros passos ● https://www.digitalocean.com/community/tutoria ls/como-instalar-e-utilizar-o-docker-primeiros- passos-pt ● http://paynedigital.com/articles/2013/11/introduc tion-to-docker
  • 12. 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_experimen t_to_undesta.html
  • 13. Referência: Arquitetura ● http://docs.docker.com/introduction/technology/ ● https://docs.docker.com/introduction/understan ding-docker/ ● http://pt.slideshare.net/rajdeep/docker- architecturev2
  • 14. 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/
  • 15. Referência: News ● http://www.infoq.com/news/2014/03/docker_0_ 9 ● http://stackoverflow.com/questions/17989306/w hat-does-docker-add-to-just-plain-lxc ● http://www.flockport.com/lxc-vs-lxd-vs-docker- making-sense-of-the-rapidly-evolving-container- ecosystem/
  • 16. Segurança: Virtualização e containers ● http://www.cvedetails.com/product/28125/Dock er-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
  • 17. Referência: Virtualização e containers ● https://access.redhat.com/documentation/en- US/Red_Hat_Enterprise_Linux/5/html/Virtualization/p r01s05.html ● http://www.vmware.com/files/pdf/VMware_paravirtual ization.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