sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Buscar la versión de ubuntu que tenemos instalada y ejecutamos el comando correspondiente:
Ubuntu version Repository
Precise 12.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-precise main
Trusty 14.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-trusty main
Wily 15.10 deb https://apt.dockerproject.org/repo ubuntu-wily main
Xenial 16.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-xenial main
Nota sobre la tabla anterior: Dice que hay que ejecutar el comando deb para cada versión. Por ejemplo:
deb https://apt.dockerproject.org/repo ubuntu-trusty main
Pero en mi caso (ejecutando esto en una kubuntu) no funcionaba, por lo que sustituí ese comando por:
sudo add-apt-repository "https://apt.dockerproject.org/repo ubuntu-trusty main"
Y funcionó.
echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
Las instrucciones siguientes dependen de la versión que se esté usando. Se muestran los pasos para Ubuntu 14.04 (Ver el resto de opciones aquí: https://docs.docker.com/engine/installation/linux/ubuntulinux/ (apartado: pre-requisites per ubuntu version)):
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
De aquí en adelante, los pasos son iguales para todas las versiones de ubuntu.
sudo apt-get update
sudo apt-get install docker-engine
sudo service docker start
Listamos las imágenes disponibles:
Ejecutamos un contenedor:
sudo docker run hello-world
Esto descargará el contenedor hello-world
Ahora si miramos las imágenes que tenemos disponibles veremos que tenemos hello world:
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
Vamos a instalar y aceder a un contenedor con una aplicación, por ejemplo WordPress. Para ello utilizaremos el wordpress de bitnami:
- Crearemos un directorio para albergar el fichero de configuración. En mi caso ~docker_containers/wordpress
- Entramos en el directorio que acabamos de crear
- Creamos el fichero docker-compose.yml y ponemos el siguiente contenido:
version: '2'
services:
mariadb:
image: bitnami/mariadb:latest
volumes:
- mariadb_data:/bitnami/mariadb
wordpress:
image: bitnami/wordpress:latest
depends_on:
- mariadb
ports:
- '80:80'
- '443:443'
volumes:
- wordpress_data:/bitnami/wordpress
- apache_data:/bitnami/apache
- php_data:/bitnami/php
volumes:
mariadb_data:
driver: local
wordpress_data:
driver: local
apache_data:
driver: local
php_data:
driver: local
- Ejecutamos el siguiente comando:
docker-compose up -d
Nota: En el caso de que nos diga que docker-compose no exista deberemos instalarlo siguiendo estos pasos (depurar, enlace a la otra nota dónde se explica esto)
Una vez ejecutado, consultamos las imágenes que tenemos:
sudo docker images
Veremos que nos ha creado dos imágenes nuevas, una con wordpress y el otro con mariadb para contener la base de datos
REPOSITORY TAG IMAGE ID CREATED SIZE
bitnami/wordpress latest 74b484102b72 3 days ago 267.7 MB
bitnami/mariadb latest 9e8ad4fbaf7e 4 days ago 560 MB
También podremos comprobar que dentro del host linux que contiene el contenedor docker, ya podemos acceder al wordpress. Podríamos hacerlo de diferentes maneras:
telnet localhost 80 (con esto comprobaríamos que está arrancado)
Con estos dos comandos podríamos descargar una copia de la home de wordpress
wget http://localhost
curl http://localhost
También podríamos navegar con lynx, si lo tenemos instalado:
lynx http://localhost
Si estamos ejecutando esto desde un virtualbox configurado con NAT en Windows, en principio ya podríamos acceder al wordpress desde el windows con:
http://localhost
No haría falta especificar ningún port-forwarding.
(No sé si en host-only u otras configuraciones también funcionaría)