Desenvolvimento local reproduzível
"We help developers and development teams build and ship apps. -- docker.com
Só umas "versõezinhas" diferentes!
Linux com:
PHP
pasta "app"
  10 ficheiros
  2 fotos
container e image
processo e programa
image - "cópia de um sistema configurado de certo modo" (snapshot)
serve de "esqueleto" para criar "containers"
tem sistema operativo, software, e ficheiros (como código)
Linux com:
PHP
pasta "app"
ficheiros websites
container e image
processo e programa
o meu linux
base para
o meu linux para wordpress
o meu linux para laravel
o meu linux para wordpress
o meu linux para wordpress
o meu linux para wordpress
o meu linux para wordpress
o meu linux para prestashop
independentes (não se misturam)
não "estragam" sistema real
podem "comunicar"
volume - "portal" de partilha de ficheiros entre contentores e "sistema real"
- ideal para ficheiros editados frequentemente
- ex.: ficheiros de website
o meu linux para wordpress
o meu linux para wordpress
o meu linux para wordpress
o meu linux para wordpress
o meu linux para wordpress
sistema real
lib
home
bin
projeto
etc
root
Docs
projeto
Windows
Imagens
Música
Sei lá
partilhados
index.html
gato.png
network?
Como usar o Docker para...
Correr um contentor
Como usar o Docker para...
Linux com:
PHP
pasta "app"
ficheiros websites
o meu linux
Dockerfile - criar imagem
Comandos docker
Cria e arranca um contentor com base numa imagem
| Parâmetro | Descrição | 
|---|---|
| --rm | apaga contentor, depois de correr | 
| -e | define variáveis de ambiente | 
| -it | |
Criar servidor php em docker
Exercícios com Docker
docker run -d -p 80:80 --name apache-php-test -v "$PWD":/var/www/html php:7.2-apache  Exercícios com Docker
mas com Dockerfile
docker build -t php-apache-custom ./
docker run -d -p 80:80 --name apache-php-test -v "$PWD":/var/www/html php-apache-customFROM php:7.2-apache
COPY ./ /var/www/html
EXPOSE 80Dockerfile
Vantagem?
Personalização
Exercícios com Docker
mas com docker-compose
docker-compose upversion: '2'
services:
  php-apache-custom:
    image: php:7.2-apache
    ports:
      - "80:80"
    volumes:
     - ./:/var/www/htmldocker-compose.yml
MUITO mais simples!
Exercícios com Docker
mas com docker-compose E Dockerfile
docker build -t php-apache-custom ./
docker-compose upversion: '2'
services:
  php-apache-custom:
    image: php-apache-custom
    ports:
      - "80:80"
    volumes:
     - ./:/var/www/htmldocker-compose.yml
Simplicidade + Personalização
FROM php:7.2-apache
COPY ./ /var/www/html
EXPOSE 80Dockerfile
Exercícios com Docker
mas com docker-compose E Dockerfile
(+ simples)
docker-compose upversion: '2'
services:
  php-apache-custom:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    volumes:
     - ./:/var/www/htmldocker-compose.yml
AINDA MAIS
Simplicidade + Personalização
FROM php:7.2-apache
COPY ./ /var/www/html
EXPOSE 80Dockerfile
correr uma aplicação isolada em Docker com base:
| Nome projeto | |
|---|---|
| Instruções para correr | |
| tecnologias usadas pelo projeto (não têm de ser todas) | |
| Link projeto (dockerhub, github) | |
Interfaces gráficas (GUI) alternativas à linha de comandos
Apps windows, linux, Mac OS
Plugins/Extensões
Minecraft?!