Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Enfrentando o Docker em ambientes de desenvolvimento

Enfrentando o Docker em ambientes de desenvolvimento

Esta palestra descreve as semelhanças entre o esquema de virtualização comum e a virtualização com containers, introduz o Docker Engine e suas ferramentas como meio de agilizar e padronizar a configuração de ambientes de desenvolvimento.

Sérgio Vilar

March 16, 2016
Tweet

More Decks by Sérgio Vilar

Other Decks in Programming

Transcript

  1. 7JSUVBMJ[BÇÄP Host OS (Windows, Linux, OSX) VM A (Guest OS)

    VM B (Guest OS) Virtualization provider (VMWare, Virtualbox) Dependencies (SO, bins) Dependencies (SO, bins) App A App B "NCJFOUF
 QBESPOJ[BEP
  2. 7JSUVBMJ[BÇÄPFN$POUBJOFST Host OS (Windows, OSX) VM (Guest OS + Docker

    Engine) Virtualization provider (VMWare, Virtualbox) MySQL 
 (LXC Container) App "NCJFOUF
 QBESPOJ[BEP Nginx
 (LXC Container) PHP-FPM
 (LXC Container) Link
  3. 7JSUVBMJ[BÇÄPFN$POUBJOFST Host OS (Linux) Docker Engine MySQL 
 (LXC Container)

    App Nginx
 (LXC Container) PHP-FPM
 (LXC Container) "NCJFOUF
 QBESPOJ[BEP
  4. 1 FROM ubuntu:14.04 2 3 # Install Python. 4 RUN

    apt-get update 5 RUN apt-get install -y python python-dev python-pip python-virtualenv 6 RUN rm -rf /var/lib/apt/lists/* 7 8 # Define working directory. 9 WORKDIR /data 10 11 # Define default command. 12 CMD ["bash"] Dockerfile
  5. 1 FROM ubuntu:14.04 2 3 # Install Python. 4 RUN

    \ 5 apt-get update && \ 6 apt-get install -y python python-dev python-pip python-virtualenv && \ 7 rm -rf /var/lib/apt/lists/* 8 9 # Define working directory. 10 WORKDIR /data 11 12 # Define default command. 13 CMD ["bash"] Dockerfile Boa Prática
  6. 1 wordpress: 2 image: wordpress 3 links: 4 - db:mysql

    5 ports: 6 - 80:80 7 working_dir: /var/www/html 8 volumes: 9 - .:/var/www/html/wp-content/themes/development 10 db: 11 image: mariadb 12 environment: 13 MYSQL_ROOT_PASSWORD: example docker-compose.yml /PNFEPDPOUBJOFS *NBHFN -JOLFOUSFDPOUBJOFST .BQFBNFOUPEFQPSUBT $PNQBSUJMIBNFOUPEFBSRVJWPT
  7. Pontos positivos • Mesmo ambiente em dev e prod •

    Dependências facilmente atualizadas • Leve e rápido • Possibilidade de compor containers
  8. Pontos negativos • APIs mudam muito rápido • Conceito de

    containers é difícil de entender • Comandos muito extensos, difícil memorização
  9. Vagrant x Docker • Vagrant + Provisionamento é difícil de

    atualizar • Containers são bem mais leves e com boot mais rápido