SlideShare uma empresa Scribd logo
1 de 23
1
Docker e suas Tecnologias
Cesar A. Nogueira
Desenvolvedor de Software
Instituto Eldorado
@cesarnogcps
3 de Junho de 2015
22
➔ Definindo o Docker
➔ Caso de uso real em projeto Motorola:
Docker no projeto DogFood Survey
➔ Hands On
◆ Rodando seu primeiro container Docker.
Agenda
33
NÃO é uma máquina virtual
NÃO é um substituto a qualquer Gerenciador de Configuração (como Chef, Puppet,
SaltStack) que define estados de configuração da TI.
NÃO é um PaaS (Platform as a Service)
NÃO consegue sozinho linkar-se por servidores separados ou Virtual Machines
O que não é Docker?
44
O que é Docker então?Site oficial: https://www.docker.com/
55
Docker
é diferente de Máquinas Virtuais
66
77
Developers:
Construa uma vez… rode em qualquer lugar
13.000+ apps disponíveis no Docker Hub pra começar
Automatize builds pipelines
Compartilhe artefatos com outros devs
através de repositórios públicos ou privados.
INFRASTRUCTURE:
➔ Configure uma vez… rode qualquer coisa
➔ Reduza a falácia do “mas funcionou na minha máquina”
➔ “Dockerizando” a plataforma da aplicação e suas dependências,
diferenças em distribuições de OS são removidas
Por que me importar com Docker?
88
Docker é uma ferramenta básica, como git ou java,
que você deve começar a incorporar em seu desenvolvimento diário.
Use como um sistema de controle de versão para todo o sistema operacional de seu app
Use quando quiser distribuir/colaborar no sistema de sua aplicação com um time de desenvolvedores
Use para rodar seu código no seu próprio laptop com o mesmo ambiente que você teria em seu servidor
(tente a ferramenta de construção de imagens do Docker)
Use quando sua aplicação precisar passar por várias fases de desenvolvimento
(dev/test/qa/prod, tente Drone ou Shippable, ambos fazem Docker CI/CD)
Quando usar Docker?
99
1010
Resumindo
1111
Docker tem 2 anos de vida
1212
1313
Workers
Docker no DogFood Survey
1414
1515
Hands On
1616
Como funciona?As principais partes de seu sistema de deployment são:
1. Daemon: Gerencia os containers LXC em um host
2. Client: Usado para interagir com o Docker daemon
3. Index: Este é um repositório de imagens do Docker
As ferramentas acima so usadas para criar aplicações que consistem de:
1. Containers: Diretórios contendo tudo que é necessário para rodar uma aplicação
2. Files: Scripts para automatizar a construção de aplicações Docker.
3. Images: Snapshots de aplicações Docker ou a base de Sistemas Operacionais
1717
Ubuntu
sudo apt-get install docker.io
Instalação
Windows
https://goo.gl/wLTZp1
Mac OS X
https://goo.gl/DSjXXS
Hands On
1818
Crie um grupo chamado docker e adicione seu usuário nele:
1. Logue no Ubuntu ou no seu sistema operacional com um usuário que tenha privilégios de sudo
2. Crie o grupo docker e adicione seu usário com o seguinte comando:
sudo usermod -aG docker ubuntu
1. Dê logoff e logue novamente.
2. Isto irá confirmar que seu usuário está rodando com as permissões corretas.
3. Verifique se tudo está funcionando com o hello-world já provido no docker:
Instalação...
Hands On
1919
Docker Registry Hub
2020
docker restart <container-name>
Exemplo: docker restart postgresql
Como reiniciar o contexto de um container?
Hands On
2121
Comandos mais usados:
docker attach Attach to a running container
build Build a container from a Dockerfile
commit Create a new image from a container's changes
diff Inspect changes on a container's filesystem
export Stream the contents of a container as a tar archive
history Show the history of an image
images List images
import
Create a new filesystem image from the contents of a tarball
info Display system-wide information
insert Insert a file in an image
inspect Return low-level information on a container
2222
kill Mata um container ativo
login Registra ou loga com o Docker registry server
logs <nome do container>
Recupera os logs de um container
port <nome do container>
Mostra a porta pública NAT para a PRIVATE_PORT
ps Lista os containers ativos
pull Pull an image or a repository from the Docker registry server
push Push an image or a repository to the Docker registry server
restart Reinicia um container
rm Remove um container
rmi Remove uma imagem
run Roda um comando em um novo container
start Inicia um container que está parado
stop Para um container que está rodando
tag Tageia uma imagem de container em um repositório
version Mostra informações sobre a versão do Docker instalada
wait Block until a container stops, then print its exit code
docke
r
2323
Obrigado!
Dúvidas?
Sugestões?
cesar.nogueira@eldorado.org.br

Mais conteúdo relacionado

Mais procurados

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
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
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
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2Azuki
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersFrancisco Gonçalves
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Docker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarDocker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarVinícius Feitosa
 
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 na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 

Mais procurados (20)

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...
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Docker
DockerDocker
Docker
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containers
 
Docker - Básico
Docker - BásicoDocker - Básico
Docker - Básico
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Docker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarDocker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistar
 
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
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 

Semelhante a Docker e suas tecnologias por @cesarnog

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoTobias Sette
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
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
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
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
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em containerThaise Dantas
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao DockerRafael Dutra
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesRodrigo Cândido da Silva
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldThiago Soares
 

Semelhante a Docker e suas tecnologias por @cesarnog (20)

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
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
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em container
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
Docker
Docker Docker
Docker
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Docker
DockerDocker
Docker
 

Mais de Cesar Augusto Nogueira

Programa LeadingMyself - Accenture 2021
Programa LeadingMyself - Accenture 2021Programa LeadingMyself - Accenture 2021
Programa LeadingMyself - Accenture 2021Cesar Augusto Nogueira
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...Cesar Augusto Nogueira
 
Minando dados de sua cidade para sua comunidade
Minando dados de sua cidade para sua comunidadeMinando dados de sua cidade para sua comunidade
Minando dados de sua cidade para sua comunidadeCesar Augusto Nogueira
 
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Cesar Augusto Nogueira
 
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...Cesar Augusto Nogueira
 
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Cesar Augusto Nogueira
 
OpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKOpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKCesar Augusto Nogueira
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsCesar Augusto Nogueira
 
Certificado de participação - Trilha Python - The Developers Conference 2016 SP
Certificado de participação - Trilha Python - The Developers Conference 2016 SPCertificado de participação - Trilha Python - The Developers Conference 2016 SP
Certificado de participação - Trilha Python - The Developers Conference 2016 SPCesar Augusto Nogueira
 
Certificado de participação no Hackathon Globo 2016 - Cesar A. Nogueira
Certificado de participação no Hackathon Globo 2016 - Cesar A. NogueiraCertificado de participação no Hackathon Globo 2016 - Cesar A. Nogueira
Certificado de participação no Hackathon Globo 2016 - Cesar A. NogueiraCesar Augusto Nogueira
 
Certificado_Python_Brasil_11_Cesar Augusto Nogueira
Certificado_Python_Brasil_11_Cesar Augusto NogueiraCertificado_Python_Brasil_11_Cesar Augusto Nogueira
Certificado_Python_Brasil_11_Cesar Augusto NogueiraCesar Augusto Nogueira
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Brazil Scientific Mobility Program guide 2013/2014
Brazil Scientific Mobility Program guide 2013/2014Brazil Scientific Mobility Program guide 2013/2014
Brazil Scientific Mobility Program guide 2013/2014Cesar Augusto Nogueira
 
[BRAZIL] Science without Borders program description
[BRAZIL] Science without Borders program description[BRAZIL] Science without Borders program description
[BRAZIL] Science without Borders program descriptionCesar Augusto Nogueira
 
Colégio Técnico de Campinas (COTUCA) 2013/2014
Colégio Técnico de Campinas (COTUCA) 2013/2014Colégio Técnico de Campinas (COTUCA) 2013/2014
Colégio Técnico de Campinas (COTUCA) 2013/2014Cesar Augusto Nogueira
 

Mais de Cesar Augusto Nogueira (20)

TI para o Sucesso nos Negócios
TI para o Sucesso nos NegóciosTI para o Sucesso nos Negócios
TI para o Sucesso nos Negócios
 
Programa LeadingMyself - Accenture 2021
Programa LeadingMyself - Accenture 2021Programa LeadingMyself - Accenture 2021
Programa LeadingMyself - Accenture 2021
 
Professional Google Cloud Architect
Professional Google Cloud ArchitectProfessional Google Cloud Architect
Professional Google Cloud Architect
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
 
Minando dados de sua cidade para sua comunidade
Minando dados de sua cidade para sua comunidadeMinando dados de sua cidade para sua comunidade
Minando dados de sua cidade para sua comunidade
 
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
 
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...
Treinamento: SAP Management 4.0 (Fundamentos em SAP nas principais transações...
 
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
 
OpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKOpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDK
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcps
 
Certificado de participação - Trilha Python - The Developers Conference 2016 SP
Certificado de participação - Trilha Python - The Developers Conference 2016 SPCertificado de participação - Trilha Python - The Developers Conference 2016 SP
Certificado de participação - Trilha Python - The Developers Conference 2016 SP
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Certificado de participação no Hackathon Globo 2016 - Cesar A. Nogueira
Certificado de participação no Hackathon Globo 2016 - Cesar A. NogueiraCertificado de participação no Hackathon Globo 2016 - Cesar A. Nogueira
Certificado de participação no Hackathon Globo 2016 - Cesar A. Nogueira
 
Certificado_Python_Brasil_11_Cesar Augusto Nogueira
Certificado_Python_Brasil_11_Cesar Augusto NogueiraCertificado_Python_Brasil_11_Cesar Augusto Nogueira
Certificado_Python_Brasil_11_Cesar Augusto Nogueira
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Introduction to RDF Data Model
Introduction to RDF Data ModelIntroduction to RDF Data Model
Introduction to RDF Data Model
 
Brazil Scientific Mobility Program guide 2013/2014
Brazil Scientific Mobility Program guide 2013/2014Brazil Scientific Mobility Program guide 2013/2014
Brazil Scientific Mobility Program guide 2013/2014
 
[BRAZIL] Science without Borders program description
[BRAZIL] Science without Borders program description[BRAZIL] Science without Borders program description
[BRAZIL] Science without Borders program description
 
Colégio Técnico de Campinas (COTUCA) 2013/2014
Colégio Técnico de Campinas (COTUCA) 2013/2014Colégio Técnico de Campinas (COTUCA) 2013/2014
Colégio Técnico de Campinas (COTUCA) 2013/2014
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 

Docker e suas tecnologias por @cesarnog

  • 1. 1 Docker e suas Tecnologias Cesar A. Nogueira Desenvolvedor de Software Instituto Eldorado @cesarnogcps 3 de Junho de 2015
  • 2. 22 ➔ Definindo o Docker ➔ Caso de uso real em projeto Motorola: Docker no projeto DogFood Survey ➔ Hands On ◆ Rodando seu primeiro container Docker. Agenda
  • 3. 33 NÃO é uma máquina virtual NÃO é um substituto a qualquer Gerenciador de Configuração (como Chef, Puppet, SaltStack) que define estados de configuração da TI. NÃO é um PaaS (Platform as a Service) NÃO consegue sozinho linkar-se por servidores separados ou Virtual Machines O que não é Docker?
  • 4. 44 O que é Docker então?Site oficial: https://www.docker.com/
  • 5. 55 Docker é diferente de Máquinas Virtuais
  • 6. 66
  • 7. 77 Developers: Construa uma vez… rode em qualquer lugar 13.000+ apps disponíveis no Docker Hub pra começar Automatize builds pipelines Compartilhe artefatos com outros devs através de repositórios públicos ou privados. INFRASTRUCTURE: ➔ Configure uma vez… rode qualquer coisa ➔ Reduza a falácia do “mas funcionou na minha máquina” ➔ “Dockerizando” a plataforma da aplicação e suas dependências, diferenças em distribuições de OS são removidas Por que me importar com Docker?
  • 8. 88 Docker é uma ferramenta básica, como git ou java, que você deve começar a incorporar em seu desenvolvimento diário. Use como um sistema de controle de versão para todo o sistema operacional de seu app Use quando quiser distribuir/colaborar no sistema de sua aplicação com um time de desenvolvedores Use para rodar seu código no seu próprio laptop com o mesmo ambiente que você teria em seu servidor (tente a ferramenta de construção de imagens do Docker) Use quando sua aplicação precisar passar por várias fases de desenvolvimento (dev/test/qa/prod, tente Drone ou Shippable, ambos fazem Docker CI/CD) Quando usar Docker?
  • 9. 99
  • 11. 1111 Docker tem 2 anos de vida
  • 12. 1212
  • 14. 1414
  • 16. 1616 Como funciona?As principais partes de seu sistema de deployment são: 1. Daemon: Gerencia os containers LXC em um host 2. Client: Usado para interagir com o Docker daemon 3. Index: Este é um repositório de imagens do Docker As ferramentas acima so usadas para criar aplicações que consistem de: 1. Containers: Diretórios contendo tudo que é necessário para rodar uma aplicação 2. Files: Scripts para automatizar a construção de aplicações Docker. 3. Images: Snapshots de aplicações Docker ou a base de Sistemas Operacionais
  • 17. 1717 Ubuntu sudo apt-get install docker.io Instalação Windows https://goo.gl/wLTZp1 Mac OS X https://goo.gl/DSjXXS Hands On
  • 18. 1818 Crie um grupo chamado docker e adicione seu usuário nele: 1. Logue no Ubuntu ou no seu sistema operacional com um usuário que tenha privilégios de sudo 2. Crie o grupo docker e adicione seu usário com o seguinte comando: sudo usermod -aG docker ubuntu 1. Dê logoff e logue novamente. 2. Isto irá confirmar que seu usuário está rodando com as permissões corretas. 3. Verifique se tudo está funcionando com o hello-world já provido no docker: Instalação... Hands On
  • 20. 2020 docker restart <container-name> Exemplo: docker restart postgresql Como reiniciar o contexto de um container? Hands On
  • 21. 2121 Comandos mais usados: docker attach Attach to a running container build Build a container from a Dockerfile commit Create a new image from a container's changes diff Inspect changes on a container's filesystem export Stream the contents of a container as a tar archive history Show the history of an image images List images import Create a new filesystem image from the contents of a tarball info Display system-wide information insert Insert a file in an image inspect Return low-level information on a container
  • 22. 2222 kill Mata um container ativo login Registra ou loga com o Docker registry server logs <nome do container> Recupera os logs de um container port <nome do container> Mostra a porta pública NAT para a PRIVATE_PORT ps Lista os containers ativos pull Pull an image or a repository from the Docker registry server push Push an image or a repository to the Docker registry server restart Reinicia um container rm Remove um container rmi Remove uma imagem run Roda um comando em um novo container start Inicia um container que está parado stop Para um container que está rodando tag Tageia uma imagem de container em um repositório version Mostra informações sobre a versão do Docker instalada wait Block until a container stops, then print its exit code docke r

Notas do Editor

  1. "A container is like Vegas, what happens in a container stays in that container."
  2. Docker brings security to applications running in a shared environment, but containers by themselves are not an alternative to taking proper security measures.
  3. É uma tendência, tem bastante empresa falando. Citar case no Brasil da Globo.com
  4. Buscar no Gartner - Hype Cycle 2015 para o Docker