![Docker, Qué es y sus principales características.](https://cdn.openwebinars.net/media/featured_images/que-es-docker-containers.jpg)
Docker, Qué es y sus principales características.
El contenedor Linux se ha convertido en una herramienta que ayuda tanto a desarrolladores como a administradores de sistemas a probar aplicaciones o...
![](https://cdn.openwebinars.net/media/avatars/esau/tdrk2fused.jpg)
Tabla de contenidos
En este artículo vamos a ver de forma práctica cómo instalar un entorno Wordpress con Docker Compose. Con esta rápida instalación podremos clonar sitios Wordpress y crear un entorno de desarrollo (o producción si lo deseamos) para aquellos programadores e implementadores de Wordpress.
Si no sabes que es Docker te recomiendo leas nuestro artículo: Docker, qué es y sus principales características .
Vamos a ir explicando el paso a paso hasta conseguir un sitio Wordpress completamente funcional en una máquina local con sistema operativo Ubuntu 16.04 (si necesitáis la explicación para otras distribuciones indicádnoslo en los comentarios).
Docker proporciona un repositorio APT para Ubuntu 16.04 con la versión 1.7.1 de Docker y superiores. Tendremos que indicar a APT a usar los paquetes del repositorio oficial de Docker:
Abrirmos una terminal.
Actualizamos nuestra lista de paquetes APT y nos aseguramos de que estamos usando el método Https
y tenemos los certificados CA
instalados:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
Añadimos la nueva clave GPG
:
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Abrimos el fichero /etc/apt/sources.list.d/docker.list
con nuestro editor de texto favorito. Si no existe, debemos crearlo. Esto deberemos realizarlo con privilegios de administrador o root.
Dejamos limpio el fichero.
Añadimos la siguiente linea para Ubuntu 16.04:
deb https://apt.dockerproject.org/repo ubuntu-xenial main
Guardamos y cerramos el fichero /etc/apt/sources.list.d/docker.list
.
Actualizamos el índice de paquetes de APT.
$ sudo apt-get update
Purgamos el viejo repositorio si existiese:
$ sudo apt-get purge lxc-docker
Verificamos que APT instalará el paquete desde el repositorio correcto:
$ apt-cache policy docker-engine
Una vez tenemos actualizado APT es hora de instalar Docker.
Instalación de Docker:
$ sudo apt-get install docker-engine
Arrancamos el demonio de Docker:
$ sudo service docker start
Verificamos que docker
está instalado correctamente:
$ sudo docker run hello-world
Este comando descargará una imagen de test de docker y la iniciará en un contenedor. Cuando se inicie el contenedor mostrará un mensaje informativo y posteriormente se cerrará.
No vamos a entrar en otras configuraciones más avanzadas de Docker para que este artículo quede lo más sencillo y práctico posible. Para más información acerca de la[instalación de Docker puedes dirigirte a su documentación oficial .
Docker Compose es una herramienta para administrar aplicaciones Docker basadas en multiples contenedores. Con Docker Compose podremos clonar, crear, eliminar, y arrancar sitios Wordpress.
Para instalar Docker Compose necesitaremos la herramienta curl
instalada en el sistema, si no disponemos de ella la instalamos con:
$ sudo apt-get install curl
Ahora ya podremos instalar docker-compose
:
Instalación de Docker Compose con un solo comando como superusuario:
$ sudo -i
# curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# exit
Damos permisos de ejecución al binario:
$ sudo chmod +x /usr/local/bin/docker-compose
Testeamos la instalación:
$ sudo docker-compose --version
docker-compose version 1.8.0, build f3628c7
Opcionalmente podemos instalar el autocompletado de docker-compose
para bash
:
$ sudo -i
# curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
# exit
Hasta el momento debíamos iniciar docker
con permisos de superusuario ( sudo
o root
). Ahora vamos a configurar los permisos para que nuestro usuario pueda ejecutar el demonio de Docker y hacer uso de docker-compose
.
Para evitar tener que usar sudo
cuando se utiliza el comando docker
, debemos crear un grupo de Unix llamado docker
y añadir usuarios al mismo. Cuando se inicie el demonio docker
, el socket de Unix pasará a ser propiedad del grupo docker
con permisos de Lectura/Escritura. Comencemos:
sudo
. docker
:
$ sudo groupadd docker
docker
:
$ sudo usermod -aG docker $USER
docker
sin el uso de sudo
:
$ docker run hello-world
Si falla veremos un mensaje similar al siguiente:
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
Comprueba que la variable de entorno DOCKER_HOST
no está inicializada en tu shell
. Si lo está, bórrala.En este punto ya tenemos el sistema listo para trabajar con docker
y docker-compose
.
Con Docker Compose podemos iniciar fácilmente WordPRess en un entorno aíslado contruido mediante contenedores Docker.
docker-compose.yml
que será el encargado de tener la definido nuestros contenedores. En mi caso crearé el directorio llamado wordpress-wptesteando
:
$ cd ~
$ mkdir wordpress-wptesteando
$ cd wordpress-wptesteando
docker-compose.yml
que contendrá la definición de nuestro proyecto. Nos basaremos en dos instancias separadas: Una instancia para Wordpress
y otra instancia separada para MySQL
con un volumen montado para la persistencia de los datos de mysql
. Este será nuestro fichero docker-compose.yml :
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
* El directorio ./.data/db
será automáticamente creado en el directorio del proyecto, a la misma altura que el fichero docker-compose.yml
, y contendrá los datos persistentes de la base de datos de nuestro WordPress.Ahora vamos a ejecutar el comando docker-compose up -d
estando situados dentro del directorio del proyecto.
Este comando descargará ( pull
) las imágenes necesarias y iniciará el contenedor de Wordpress y de la base de datos.
$ docker-compose up -d
Creating network "wordpresswptesteando_default" with the default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
Digest: sha256:e6dc999f4e2d5982e74a008ff08c0641f0832e19339aaf4f4c2bc2ca426e96c6
Status: Downloaded newer image for mysql:5.7
Creating wordpresswptesteando_db_1
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
357ea8c3d80b: Already exists
Digest: sha256:56cd7233bf69a580d823d29ad16c085392abf3fc00b1e4ed7b955b83db2544f7
Status: Downloaded newer image for wordpress:latest
Creating wordpresswptesteando_wordpress_1
Con esto ya tendremos creados y corriendo dos contenedores:
wordpresswptesteando_db_1
: Es el contenedor MySQL para nuestra base de datos de Wordpress.wordpresswptesteando_wordpress_1
: Es el contenedor que contiene nuestra instancia de WordPress además del servidor Web apache.Al definir nuestro proyecto WordPress anteriormente indicamos la siguiente opción:
ports:
- "8000:80"
Con esto hicimos un link entre los puertos 80
del servidor web que está corriendo en nuestro contenedor WordPress y el puerto 8000
de nuestra máquina local.
Para acceder a nuestro sitio web WordPress recien creado, deberemos abrir el navegador web en la dirección ip local de nuestra máquina o localhost
pero en el puerto que tenemos linkeado al contenedor Wordpress, es decir, el puerto 8000
.
Para ello vamos a abrir http://localhost:8000
en nuestro navegador web preferido y ya podremos comenzar con la instalación de WordPress.
Aunque te parezca un artículo bastante largo, en realidad, todo el proceso no debería llevarte más de 3 minutos si ya dispones de Docker y Docker Compose instalados en tu máquina local.
Nos podríamos haber extendido mucho más en la explicación de Docker y Docker Compose pero nos quedaría un artículo demasiado largo. Te invito a que eches un vistazo a nuestro Curso de Docker o al Curso de Docker Swarm, Kubernetes y CoreOS Fleet si eres un usuario más avanzado, ambos impartidos por ingenieros de Docker INC. .
Con el uso de Docker Compose podremos crear rápidamente y de manera sencilla una nueva instancia de WordPress cada vez que lo necesitemos, además de usar las funcionalidades propias de Docker sobre nuestros contedores.
Si tienes alguna pregunta o sugerencia, por favor, déjala en los comentarios. No olvides compartir con todo el que le pueda interesar el artículo, así ayudamos a tener mejores profesionales IT.
¡Nos vemos en el próximo artículo!
También te puede interesar
El contenedor Linux se ha convertido en una herramienta que ayuda tanto a desarrolladores como a administradores de sistemas a probar aplicaciones o...