Docker WordPress

27
Docker WordPress WordPress con Docker

Transcript of Docker WordPress

Docker WordPressWordPress con Docker

WordPressUna configuración usual para desarrollar con WordPress es:

● Apache y MySql corriendo en el sistema operativo

(Linux / Windows / Mac)

● PHP corriendo sobre Apache

y con un módulo para conversar con MySql

● WordPress corriendo sobre PHP

● PhpMyAdmin corriendo sobre PHP

WordPress

Apache WP

PHP

MySql

Linux / Windows / Mac

PMA

DockerBásicamente, Docker permite crear y administrar computadoras virtuales que

corren diferentes tipos de sistemas.

Las computadoras virtuales son llamadas Containers y son creadas partir de

templates llamados Images.

Los containers pueden conectarse en red.

Docker puede correr en Linux, Windows y Mac. No de manera idéntica pero,

básicamente, se puede usar del mismo modo.

Docker

C1 C2 C3

I1 I2 I3

Images

Containers

Docker WordPressPodemos escoger del Docker Hub un conjunto de imágenes que nos sirva

para formar un entorno de desarrollo WordPress.

Para MySql: mysql:5.7

Para WordPress: wordpress:latest (incluye apache y php listos)

Para PhpMyAdmin: phpmyadmin/phpmyadmin

Docker WordPress

wordpressdb wordpress phpmyadmin

mysql wordpress

phpmyadmin

usando el comandodocker

$ docker... mysql$ docker run --name wordpressdb -v "$PWD"/db_data:/var/lib/mysql -

p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e

MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e

MYSQL_PASSWORD=wordpress -d mysql:5.7

wordpressdb

mysql

$ docker... wordpress$ docker run --name wordpress --link wordpressdb:mysql -v

"$PWD":/var/www/html -p 8000:80 -e WORDPRESS_DB_USER=wordpress -e

WORDPRESS_DB_PASSWORD=wordpress -d wordpress

wordpressdb wordpress

mysql wordpress

$ docker... phpmyadmin$ docker run --name phpmyadmin --link wordpressdb:db -p 8080:80 -e

PMA_USER=wordpress -e PMA_PASSWORD=wordpress -d

phpmyadmin/phpmyadmin

wordpressdb wordpress phpmyadmin

mysql wordpress phpmyadmin

$ dockerPara ver la lista de procesos:

$ docker ps

Para eliminar (deteniéndolos) los procesos especificados:

$ docker rm -f wordpressdb wordpress phpmyadmin

TestPara averiguar el IP de la máquina docker:

$ docker-machine ip

192.168.99.100

Entonces, se puede abrir en el navegador:

WordPress: http://192.169.99.100:8000

PhpMyAdmin: http://192.169.99.100:8080

usando el comandodocker-compose

docker-composedocker-compose usa el archivo docker-compose.yml

como una receta para definir los containers.

docker-compose.ymlversion: '3'

services:

db: ...

wordpress: ...

phpmyadmin: ...

volumes:

db_data:

docker-compose.ymlversion: '3'

services:

db: ...

wordpress: ...

phpmyadmin: ...

volumes:

db_data:

db:

image: mysql:5.7

volumes:

- ./db_data:/var/lib/mysql

environment:

MYSQL_ROOT_PASSWORD: password

MYSQL_DATABASE: wordpress

MYSQL_USER: wordpress

MYSQL_PASSWORD: wordpress

docker-compose.ymlversion: '3'

services:

db: ...

wordpress: ...

phpmyadmin: ...

volumes:

db_data:

wordpress:

depends_on:

- db

image: wordpress:latest

volumes:

- ./:/var/www/html

ports:

- "8000:80"

environment:

WORDPRESS_DB_HOST: db:3306

WORDPRESS_DB_USER: wordpress

WORDPRESS_DB_PASSWORD: wordpress

docker-compose.ymlversion: '3'

services:

db: ...

wordpress: ...

phpmyadmin: ...

volumes:

db_data:

phpmyadmin:

depends_on:

- db

image: phpmyadmin/phpmyadmin

ports:

- 8100:80

environment:

PMA_HOST: db

PMA_USER: wordpress

PMA_PASSWORD: wordpress

$ docker-composePara crear e iniciar los containers (-d indica en background):

$ docker-compose up -d

Para ver la lista de procesos:

$ docker-compose ps

Para detener y eliminar los containers:

$ docker-compose down

TestRecordemos que para averiguar el IP de la máquina docker:

$ docker-machine ip

192.168.99.100

Entonces, se puede abrir en el navegador:

WordPress: http://192.169.99.100:8000

PhpMyAdmin: http://192.169.99.100:8080

Apéndice

Exponiendo uploads.iniCon la configuración vista, al intentar instalar un tema, obtengo un error

indicando que excede el tamaño máximo permitido.

Para ampliar este tamaño, se puede exponer el archivo uploads.ini

docker-compose.ymlversion: '3'

services:

db: ...

wordpress: ...

phpmyadmin: ...

volumes:

db_data:

wordpress:

depends_on:

- db

image: wordpress:latest

volumes:

- ./:/var/www/html

- ./php_conf/uploads.ini:

/usr/local/etc/php/conf.d/uploads.ini

ports:

- "8000:80"

restart: always

environment:

WORDPRESS_DB_HOST: db:3306

WORDPRESS_DB_USER: wordpress

WORDPRESS_DB_PASSWORD: wordpress

uploads.inifile_uploads = On

memory_limit = 64M

upload_max_filesize = 64M

post_max_size = 64M

max_execution_time = 600

Acerca de mi PC● Windows 10

● Docker Toolbox

○ Docker Quickstart terminal

○ docker

○ docker-machine

○ docker-compose

○ Kitematic

GraciasRulo Kobashikawa

@rulokoba

rulo.me=^_^=