6 may. 2016

Uso de docker-machine

Docker-machine se usa para equipos con Windows o MACOSX, o para equipos que no se le puede instalar docker (engine). Se usa como un cliente para un servidor docker.

Este artículo se basa en la documentación oficial en inglés que se encuentra en el siguiente enlace, y en el siguiente tutorial.

Los artículos anteriores sobre docker son:
  1. Instalar Docker en Debian Jessie
  2. Uso de Docker en Debian Jessie (parte 1)
  3. Uso de Docker en Debian Jessie (parte 2)
  4. Crear una imagen Docker a partir de un archivo Dockerfile
  5. Iniciando Django usando Docker
  6. Instalar Gitlab por medio de Docker
  7. Ejecutando microservicios con docker usando docker-compose
  8. Docker en Docker (DinD)
  9. Iniciando Django con docker usando docker-compose con postgresql como microservicio.
  10. Importar un contenedor Docker en Python.
  11. Compartir imagenes Docker por medio de archivos tar.
  12. Crear un registro de imagenes Docker privado.
  13. Usar Anaconda desde un contenedor Docker.
  14. Crear un entorno de Integración y Despligue continue con Docker para node.js.
  15. Usar Jupyter Notebook desde un contenedor Docker.
  16. Ejecutar una prueba de doctest con un contenedor Docker.
  17. Ejecutar una prueba de unittest en Python con un contenedor Docker.
  18. Montar una Plataforma como servicio (PaaS) con Dokku (docker).

Para probar el uso de docker-machine, se tiene una máquina virtual con IP 192.168.1.102 donde se tiene unas imagenes de docker, y un equipo donde se instalará el docker-machine (qué será mí equipo local).

En el equipo se instalará docker-machine de la siguiente manera:

#curl -L https://github.com/docker/machine/releases/download/v0.4.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine


#chmod a+x  /usr/local/bin/docker-machine


Para probar que funciona se ejecuta la versión de docker-machine:

#docker-machine -v
docker-machine version 0.4.0 (9d0dc7a)


Crear un docker-machine en virtualbox:

$ docker-machine create --driver virtualbox test

En este caso se crea un contenedor docker que se conecta a virtualbox llamado test.

A continuación se muestra la salida del comandoanterior:

Como lo muestra la imagen, se crea el docker test, se baja una imagen iso llamada boot2docker.

En la siguiente imagen se muestra a virtualbox con la máquina virtual test:

Al acceder a la máquina virtual desde virtualbox se tiene lo siguiente:


Para ver como se conecta a la máquina se ejecuta el siguiente comando:
$docker-machine env test
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/home/ernesto/.docker/machine/machines/test"
export DOCKER_MACHINE_NAME="test"
## Run this command to configure your shell: 
## eval "$(docker-machine env test)"

Para configurar el shell se ejecuta el siguiente comando:
eval "$(docker-machine env test)"

Para listar las máquinas se ejecuta el siguiente comando:
docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
test   *        virtualbox   Running   tcp://192.168.99.100:2376


Para ver la IP que está usando test se ejecuta:
$ docker-machine ip test
192.168.99.100

Correr un servidor nginx en el puerto 8000 en un contenedor:
docker run -d -p 8000:80 nginx

Para ver el servidor se ejecuta el siguiente comando:
curl $(docker-machine ip test):8000

Y el resultado es:


Para terminar se detiene el docker-machine y se elimina:

$docker-machine stop test
$ernesto@jewel:~$ docker-machine rm test
Successfully removed test
Publicar un comentario en la entrada

AddThis