Docker WordPress
WordPress con Docker
WordPress
Una 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
Docker
Bá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 WordPress
Podemos 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
wordpress
db
wordpress phpmyadmin
mysql
word
press
php
my
admin
usando el comando
docker
$ 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
wordpress
db
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
wordpress
db
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
wordpress
db
wordpress phpmyadmin
mysql wordpress phpmyadmin
$ docker
Para ver la lista de procesos:
$ docker ps
Para eliminar (deteniéndolos) los procesos especificados:
$ docker rm -f wordpressdb wordpress phpmyadmin
Test
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
usando el comando
docker-compose
docker-compose
docker-compose usa el archivo docker-compose.yml
como una receta para definir los containers.
docker-compose.yml
version: '3'
services:
db: ...
wordpress: ...
phpmyadmin: ...
volumes:
db_data:
docker-compose.yml
version: '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.yml
version: '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.yml
version: '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-compose
Para 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
Test
Recordemos 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.ini
Con 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.yml
version: '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.ini
file_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
Gracias
Rulo Kobashikawa
@rulokoba
rulo.me
=^_^=

Docker WordPress

Notas del editor

  • #3 Una configuración usual para desarrollar con WordPress. 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
  • #4 Una configuración usual para desarrollar con WordPress. 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
  • #5 Bá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.
  • #6 Bá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.
  • #7 Podemos 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
  • #8 Podemos 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