DOCKERIZANDO A INFOJR
CRISTIANO SANTOS
12/08/2016

CRISTIANO SANTOS
Feira de Santana, BA

CRISTIANO SANTOS
Feira de Santana, BA
2012 - 2014


CRISTIANO SANTOS
Feira de Santana, BA
AGO/2013 AGO/2014
LABIMM

CRISTIANO SANTOS
Feira de Santana, BA
AGO/2014 NOV/2014


CRISTIANO SANTOS
Feira de Santana, BA
NOV/2014 DEZ/2015


CRISTIANO SANTOS
Feira de Santana, BA
2016

A EVOLUÇÃO
VIRTUAL MACHINES

VIRTUAL MACHINES

E AGORA?

VMs? CONTAINERS?
Q **** É ESSA?
VIRTUAL MACHINES

CONTAINERS

LINUX CONTAINERS
Talk is cheap. Show me the code
"Linus Torvalds"
DOCKER S/ SUDO
$ sudo groupadd docker$ sudo usermod -aG docker $USERHELLO WORLD
HELLO WORLD
$ docker run ubuntu /bin/echo 'Hello world'HELLO WORLD
$ docker run ubuntu /bin/echo 'Hello, World'
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
2f0243478e1f: Downloading [=======================> ] 23.36 MB/49.68 MB
d8909ae88469: Download complete
820f09abed29: Download complete
01193a8f3d88: Download complete HELLO WORLD
Status: Downloaded newer image for ubuntu:latest
Hello, WorldO BÁSICO
O BÁSICO
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bb711678f6b ubuntu "/bin/echo 'Hello, Wo" 3 minutes ago Exited (0) 3 minutes ago tiny_swirles$ docker logs tiny_swirles
Hello, WorldCONTAINERS INTERATIVOS
CONTAINERS INTERATIVOS
$ docker run -t -i ubuntu /bin/bash
root@af8bae53bdd3:/#

DOCKER & PHP
$ docker run -d php:7.0-apacheDOCKER & PHP
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48eb1d65abfd php:7.0-apache "apache2-foreground" 10 seconds ago Up 9 seconds 80/tcp modest_gatesDOCKER & PHP
$ ifconfig
docker0 Link encap:Ethernet Endereço de HW 02:42:00:30:07:bd
inet end.: 172.17.0.1 Bcast:0.0.0.0 Masc:255.255.0.0
endereço inet6: fe80::42:ff:fe30:7bd/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:9490 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:16728 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:0
RX bytes:562720 (562.7 KB) TX bytes:25293913 (25.2 MB)DOCKER & PHP
$ docker exec -it modest_gates /bin/bashMAS ... DA PRA AUTOMATIZAR?
OLHE SÓ ...
SIM, COM DOCKERFILES
DOCKERFILE
$ mkdir infojr
$ cd infojr
$ touch Dockerfile
$ echo "<?php echo 'Hello, Docker!'; ?>" > index.phpDOCKERFILE
FROM tutum/apache-php
ADD . /appDOCKERFILE
$ docker build -t infojr/my-php-app .DOCKERFILE
$ docker run -d -p 80:80 infojr/my-php-app
Ô CRIS,
EU USO
PHP & MYSQL
E AGORA?

DOCKER COMPOSE
DOCKER COMPOSE
$ touch docker-compose.ymlDOCKER COMPOSE
app:
build: .
volumes:
- .:/app
ports:
- "80:80"
environment:
- PHP_ENV=development
links:
- mysql
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=infojrDOCKER COMPOSE
$ docker-compose build$ docker-compose up -dDOCKER COMPOSE
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc8efce4d6eb infojr_app "/run.sh" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp infojr_app_1
6f0ed24449d6 mysql:5.7 "/entrypoint.sh mysql" 5 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp infojr_mysql_1DOCKER COMPOSE
app:
build: .
volumes:
- .:/app
ports:
- "80:80"
environment:
- PHP_ENV=development
links:
- mysql
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=infojrDOCKER COMPOSE
<?php
$link = mysql_connect('172.17.0.1', 'root', '123456');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>








E PARA A INFOJR, QUAL A UTILIDADE?
E EM PRODUÇÃO?


DÚVIDAS?
MESMO?


/cristianossd

/cristianossd

cristianossd@gmail.com
DOCKERIZANDO A INFOJR
By cristianossd
DOCKERIZANDO A INFOJR
- 777