Docker Compose permite configurar e executar múltiplos contêineres Docker de uma só vez usando um único arquivo de configuração. Isso torna mais fácil desenvolver e implantar aplicações que consistem em vários serviços como web apps, bancos de dados e filas de mensagens. O documento descreve como Docker Compose simplifica o gerenciamento de ambientes de desenvolvimento complexos com múltiplos serviços em contêineres com um único comando "docker-compose up".
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