Hacía tiempo, como dos meses, que no me soprendía con «magia informática» ya que acabo de ver docker-machine (sí, dos meses es bastante tiempo en informática, como para empezar a notar óxido intelectual).
Venía utilizando boot2docker para levantar una máquina virtual porta-contenedores que me permitía embarcar en ella mis docker; pero en la última actualización me avisa que es un comando ‘deprecated‘ y me refiere a docker-machine.
Luego de instalarlo (brew install docker-machine) me doy cuenta la notoria evolución que representa docker-machine: permite levantar una instancia/máquina-virtual porta-contenedores en mi notebook (virtualizando con virtualbox o vmware), en una nube (amazon, azure, digitalocean, google, rackspace, openstack, softlayer, etc) o en mi datacenter (openstack, vmwarevsphere), y, a partir de ahí, puedo empezar a embarcar mis contenedores.
El proceso es bien simple:
1. Crear porta-contenedores
Comando para VirtualBox local de nombre ‘vbdev‘
$ docker-machine create -d virtualbox \ --virtualbox-memory "5120" \ vbdev
Comando para DigitalOcean para un ‘droplet‘ en Amsterdam de 1GB ram de nombre ‘dodev‘
$ docker-machine create --driver digitalocean \ --digitalocean-access-token "6d0c7..a0bfa" \ --digitalocean-image "ubuntu-14-04-x64" \ --digitalocean-region "ams1" \ --digitalocean-size "1gb" \ dodev
Para hacer esto, docker-machine crea certificados OpenSSH, se valida contra el sistema de cloud o virtualización, provisiona la instancia de acuerdo a la configuración solicitada y registra los accesos.
2. Activar el entorno del porta-contenedores que se va a utilizar
Por ejemplo, el entorno del porta-contenedor en DigitalOcean
$ eval "$(docker-machine env dodev)"
que permitirá a docker hacer las conexiones para administrar los contenedores.
3. Comenzar a embarcar los contenedores de forma acostumbrada
$ docker run hello-world
Como es de esperarse, docker-machine permite toda la administración de nuestro porta-contenedores donde quiera que esté, es decir, iniciarlo, detenerlo, borrarlo, reiniciarlo, obtener su configuración, actualizarlo, etc.
También acceder al porta-contenedor
$ docker-machine ssh dodev
y obtener la lista de todos nuestros porta-contenedores y su estado actual:
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM dev virtualbox Stopped dodev digitalocean Timeout vbdev virtualbox Running tcp://192.168.99.100:2376
Paso siguiente: docker-compose para instalaciones multi-contenedor.