Instalación de docker en OSX
brew install virtualbox
Crear máquina Docker:
docker-machine create [MACHINE_NAME]
Eliminar todas las imágenes y contenedores docker
#!/bin/bash
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)
Reiniciar máquina docker (a veces se producen fallos red)
docker-machine restart [MACHINE_NAME]
Preparar shell para trabajar por línea de comandos
eval "$(docker-machine env [MACHINE_NAME])"
Crear una imagen a partir de un Dockerfile
docker build -f Dockerfile .
Crear contenedor a partir de una imagen
docker create [IMAGE_ID]
Crear contenedor con nombre mapeando puertos a partir de una imagen
docker run -d --name=[CONTAINER_NAME] -p 8081:8081 [IMAGE_ID]
Consultar containers activos
docker ps
Consultar containers (funcionando o no)
docker ps -a
Iniciar un container
docker start [CONTAINER_ID]
Cambiar nombre a un contenedor
docker rename [CONTAINER_ID ] [CONTAINER_NAME]
Ejecutar comado en un contenedor
docker exec [CONTAINER_NAME] [COMMAND]
Hacer login en un contenedor en ejecución
docker exec -i -t [CONTAINER_NAME] /bin/bash
Aquí va otro truco para la instalación en Ubuntu. La instalación de docker siguiendo los pasos de la web es realmente simple, basta con ejecutar lo siguiente:
curl -fsSL https://get.docker.com/ | sh
Hasta aquí todo bien, pero como todo proceso (excesivamente) automatizado, cuando surgen problemas hay poco que puedas hacer. Llegas el momento de probar tu instalación con:
docker run hello-world
Y obtienes un bonito mensaje:
Error response from daemon: rpc error: code = 2 desc = "oci runtime error: exit status 1"
Zasca, en toda la boca. ¿Cómo puede ser si me he limitado a seguir el único paso requerido para instalarse? Si te pones a bichear por internet hay infinidad de respuestas, no parece haber consenso salvo en una cosa: docker no funciona con kernel 3.2 o inferior. Un primer paso sería comprobar que tu kernel es superior, el problema llega cuando efectivamente lo es y ¡sigue sin funcionar! ¿Qué está fallando aquí?
La respuesta es simple: tu versión de SO/kernell no se lleva bien con la versión instalada de docker. La línea mágica de instalación se limita a bajar la última versión, pero en SO con algún tiempo puede dar problemas (mismamente con Ubuntu 12.04 me ha pasado). ¿Cómo resolverlo? Bajando una versión anterior siguiendo estos pasos:
Baja la key del repositorio:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
Configura el repositorio:
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
Busca las versiones disponibles:
sudo apt-cache search docker
Instala la última listada (en mi caso 1.9.1):
sudo apt-get install lxc-docker-1.9.1
Permite la ejecución de docker con tu usuario actual:
sudo usermod -aG docker tu_usuario
Y a probar la instalación:
docker run hello-world
Si todo ha ido bien, ahora sí nos recibirá el mensaje que esperábamos desde un principio:
Hello from Docker. This message shows that your installation appears to be working correctly.
La solución es para la versión Ubuntu pero entiendo que es exportable a otros sistemas, léase buscar versiones anteriores de docker si el actual te da problemas.