SlideShare uma empresa Scribd logo
DOCKER COMPOSE
MICHAEL GRANADOS
2017-03-13
MICHAEL
GRANADOS
DESENVOLVEDOR WEB
DEVOPS GUY
NERD
PAI DE FAMÍLIA
Agenda
Docker é fantástico!

Mas no mundo real

As coisas começam a complicar…

Como fazer nossa vida ficar mais simples?

Colocando tudo junto!

Fácil, simples, prático
Docker é fantástico!
É possível criar ambientes
para desenvolvimento /
testes / produção

Compartilha recursos
deixando os processos mais
rápidos

É simples de usar

Faz uso de cache para
reutilizar partes de
contêineres
Mas no mundo real
Um ambiente completo em produção precisa

aplicação web

banco de dados

banco de cache

filas de processamento

processos em segundo plano

etc, etc, etc
As coisas começam a
complicar…
$ cat Dockerfile
FROM ruby:2.3.3
RUN apt-get update && 
apt-get install -y 
nodejs mysql-client
COPY Gemfile* ./
RUN gem install bundler && bundle install
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
COPY . .
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
As coisas começam a
complicar…
$ docker pull mysql:latest
$ docker build -t web .
$ docker run -d --name=db 
-e MYSQL_ALLOW_EMPTY_PASSWORD=true 
mysql:latest
$ docker run -d --name=web 
--link db:db 
-p 3000:3000 
--e RAILS_ENV=development 
-v "${PWD}:/usr/src/app"
As coisas começam a
complicar…
$ docker pull ...
$ docker pull ...
$ docker build ...
$ docker build ...
$ docker run ...
$ docker run ...
$ docker run ...
$ docker run ...
Como fazer nossa vida
ficar mais simples?
docker-compose.yml
docker-compose up
Colocando tudo junto!
Mesmo Dockerfile

Dockerfile

Um arquivo de configuração de ambientes

docker-compose.yml
Colocando tudo junto!
$ cat Dockerfile
FROM ruby:2.3.3
RUN apt-get update && 
apt-get install -y 
nodejs mysql-client
COPY Gemfile* ./
RUN gem install bundler && bundle install
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
COPY . .
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
Colocando tudo junto!
$ cat docker-compose
version: "2"
services:
web:
build: .
command: rails server -b 0.0.0.0
volumes: [".:/usr/src/app"]
links: ["db:db"]
ports: ["3000:3000"]
environment:
RAILS_ENV: development
db:
image: mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
docker-compose up
e pronto!
Fácil, simples e prático
docker-compose build

docker-compose up

docker-compose ps

docker-compose exec

docker-compose start/stop/restart

docker-compose rm

docker-compose logs

docker-compose top
“A arte de programar consiste em organizar e
dominar a complexidade.”
–Johnny Appleseed

Mais conteúdo relacionado

Mais procurados

O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
Rodrigo Emereciano
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
Michael Castillo Granados
 
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
Tobias Sette
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
Mauricio Martins
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
Matheus Fidelis
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
Waldemar Neto
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Hugo Leonardo Costa e Silva
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
Eustaquio Guimaraes mendesbsb
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
Marcelo Fleury
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
MOSS Open Source Services
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
Sérgio Lima
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
André Justi
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
Leonardo de Oliveira
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
Luís Bianchin
 
Olá docker
Olá dockerOlá docker
Olá docker
Marcos Ellys
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
Waldemar Neto
 
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
Diogo Lucas
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
André Justi
 
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
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
Cesar Augusto Nogueira
 

Mais procurados (20)

O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
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
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Introdução a Containers Docker
Introdução a Containers DockerIntrodução a Containers Docker
Introdução a Containers Docker
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e 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
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 

Semelhante a Docker compose

Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
Wellington Silva
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
Uira Ribeiro
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
Carlos Smaniotto
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
matheuscmpm
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
Matheus Fidelis
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
Carlos Eduardo Alves da Silva
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
Matheus Fidelis
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
TechCobli
 
Dockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP PernambucoDockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP Pernambuco
matheuscmpm
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
Luiz Carlos Faria
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em ruby
Radamés Roriz
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
Rafael Gomes
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Rudá Almeida
 
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
Dextra Sistemas / Etec Itu
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
iMasters
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e Docker
Wellington Marinho
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
Dextra Sistemas / Etec Itu
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
Francisco Gonçalves
 
Docker
DockerDocker
HOST079 - Docker
HOST079 - DockerHOST079 - Docker
HOST079 - Docker
Dennison Souza
 

Semelhante a Docker compose (20)

Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Dockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP PernambucoDockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP Pernambuco
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em ruby
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
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
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e Docker
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
Docker
DockerDocker
Docker
 
HOST079 - Docker
HOST079 - DockerHOST079 - Docker
HOST079 - Docker
 

Mais de Michael Castillo Granados

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
Michael Castillo Granados
 
Design patterns de uma vez por todas
Design patterns de uma vez por todasDesign patterns de uma vez por todas
Design patterns de uma vez por todas
Michael Castillo Granados
 
Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)
Michael Castillo Granados
 
Transformando o wp em uma loja virtual
Transformando o wp em uma loja virtualTransformando o wp em uma loja virtual
Transformando o wp em uma loja virtual
Michael Castillo Granados
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
Michael Castillo Granados
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguro
Michael Castillo Granados
 
Da Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualDa Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtual
Michael Castillo Granados
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
Michael Castillo Granados
 

Mais de Michael Castillo Granados (8)

Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Design patterns de uma vez por todas
Design patterns de uma vez por todasDesign patterns de uma vez por todas
Design patterns de uma vez por todas
 
Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)Design patterns: resolvendo problemas comuns (ruby)
Design patterns: resolvendo problemas comuns (ruby)
 
Transformando o wp em uma loja virtual
Transformando o wp em uma loja virtualTransformando o wp em uma loja virtual
Transformando o wp em uma loja virtual
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguro
 
Da Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualDa Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtual
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Último

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (10)

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Docker compose

  • 3. Agenda Docker é fantástico! Mas no mundo real As coisas começam a complicar… Como fazer nossa vida ficar mais simples? Colocando tudo junto! Fácil, simples, prático
  • 4. Docker é fantástico! É possível criar ambientes para desenvolvimento / testes / produção Compartilha recursos deixando os processos mais rápidos É simples de usar Faz uso de cache para reutilizar partes de contêineres
  • 5. Mas no mundo real Um ambiente completo em produção precisa aplicação web banco de dados banco de cache filas de processamento processos em segundo plano etc, etc, etc
  • 6. As coisas começam a complicar… $ cat Dockerfile FROM ruby:2.3.3 RUN apt-get update && apt-get install -y nodejs mysql-client COPY Gemfile* ./ RUN gem install bundler && bundle install RUN mkdir /usr/src/app WORKDIR /usr/src/app COPY . . EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]
  • 7. As coisas começam a complicar… $ docker pull mysql:latest $ docker build -t web . $ docker run -d --name=db -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:latest $ docker run -d --name=web --link db:db -p 3000:3000 --e RAILS_ENV=development -v "${PWD}:/usr/src/app"
  • 8. As coisas começam a complicar… $ docker pull ... $ docker pull ... $ docker build ... $ docker build ... $ docker run ... $ docker run ... $ docker run ... $ docker run ...
  • 9. Como fazer nossa vida ficar mais simples? docker-compose.yml docker-compose up
  • 10. Colocando tudo junto! Mesmo Dockerfile Dockerfile Um arquivo de configuração de ambientes docker-compose.yml
  • 11. Colocando tudo junto! $ cat Dockerfile FROM ruby:2.3.3 RUN apt-get update && apt-get install -y nodejs mysql-client COPY Gemfile* ./ RUN gem install bundler && bundle install RUN mkdir /usr/src/app WORKDIR /usr/src/app COPY . . EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]
  • 12. Colocando tudo junto! $ cat docker-compose version: "2" services: web: build: . command: rails server -b 0.0.0.0 volumes: [".:/usr/src/app"] links: ["db:db"] ports: ["3000:3000"] environment: RAILS_ENV: development db: image: mysql environment: MYSQL_ALLOW_EMPTY_PASSWORD: "true"
  • 14. Fácil, simples e prático docker-compose build docker-compose up docker-compose ps docker-compose exec docker-compose start/stop/restart docker-compose rm docker-compose logs docker-compose top
  • 15. “A arte de programar consiste em organizar e dominar a complexidade.” –Johnny Appleseed