Instalando docker en Mac OS X

Como instalar y empezar a utilizar docker en Mac OS X.
Hace unos días estuvimos haciendo una pequeña introducción a Docker y comentamos un poco acerca de como funcionaba. Hoy vamos a instalarlo en Mac y vamos a terminar haciendo nuestro pequeño container para PHP 🙂

Docker en Mac

En un principio docker esta pensado para funcionar bajo Linux. Por suerte gracias a boot2docker es posible ejecutar docker en Mac.

docker en mac

Lo que hace boot2docker es ejecutar una pequeña maquina virtual Linux (Solo 24Mb) y enviar todos los comandos a que ejecutemos a ella.
De manera alternativa, si no queremos utilizar un terminal podemos instalar kitematic que nos provee de una pequeña GUI para poder arrancar y parar containers, imágenes y todo lo necesario para utilizar docker.

Instalando Docker en Mac

Podemos instalar boot2docker desde su instalador oficial o como es mi caso utilizando brew.


Prerrequisitos: Instalar cask:

Cask es un repositorio de Formulas brew, para instalarlo solo tenemos que abrir un terminal y escribir

brew install caskroom/cask/brew-cask

Con cask tenemos un gran repositorio de formulas brew que funcionan de maravilla. Solo tenemos que buscar aquí http://caskroom.io/search

  • Paso 1: Instalar boot2docker

Para instalar boot2docker solo tenemos que buscarlo en cask y escribir en un terminal:

brew cask install boot2docker

Cons esto ya tenemos instalado docker en Mac OS X y boot2docker

Empezando a utilizar docker en Mac

Para empezar con docker en Mac, tenemos que descargar la imagen de la distribución de linux que hemos comentado antes, pero no tenemos que preocuparnos porque boot2docker se encarga de todo.

JesusLC@ ~/Documents/Desarrollo/docker $ boot2docker init

Con este comando comienza todo el proceso de descargan una vez que haya terminado escribimos:

JesusLC@ ~/Documents/Desarrollo/docker $ boot2docker up

Al finalizar tenemos que setear una serie de variables, para ello abrimos .bash_profile y escribimos nuestras variables, en mi caso:

export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/JesusLC/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1

Para saber si todo ha ido correctamente solo tenemos que hacer un hello word

JesusLC@ ~/Documents/Desarrollo/docker $ docker run hello-world
Hello from Docker.
This message shows that your installation appears to be working correctly.

¿Cómo saber si docker esta funcionando?

Al instalar boot2docker se instala virtualbox, podemos abrirlo para ver si la maquina esta funcionando, o utilizar el comando boot2docker status

También tenemos boot2docker-status que añade un icono a nuestra barra de estado que nos indica si boot2docker está activo, ~solo es compatible con Mac Yosemite~~.

¿Cómo parar docker (la máquina virtual)?

Si necesitamos parar la maquina virtual de linux tan solo tenemos que ejecutar:

boot2docker stop

*Para actualizar _boot2docker_ podemos hacerlo escribiendo boot2docker download
De la misma manera si necesitamos más memoria en nuestra maquina docker solo tenemos que arrancarla pasandole unos parámetros como estos: boot2docker --memory=4096 init

Abriendo puertos con VitualBox

En general, boot2cocker oculta que estamos trabajando con virtualbox. Sin embargo, a veces es necesario interactuar con virtualbox para abrir un puerto de la maquina virtual. El caso más común es cuando estamos desarrollando una app que se ejecuta dentro de docker y necesitamos acceder a la app desde el navegador.

Vamos a poner un ejemplo, supongamos que estamos ejecutando una aplicación Rails y para ello estamos utilizando la imagen docker de ruby o rails Una vez que la imagen se inicia, para ver la salida tenemos que conectarnos a localhost:4567 àra ver la salida del servidor rails. El problema es que por defecto docker y boot2docker solo exponen el puerto 2022 para ssh y el puerto 2375 para la API de boot2docker, así que solo veremos un No se puede conectar.

La solución es simple, desde la linea de comandos podemos utilizar VBoxManage. Para exponer el puerto escribimos algo como esto

$ VBoxManage controlvm boot2docker-vm natpf1 "rails-server,tcp,127.0.0.1,4567,,4567"

Esto crea una regla de reenvío de puertos para virtualbox. De la misma manera esto también puede hacerse a través de VirtualBox en los ajustes de red -> ‘Port Fowarding’

Referencias

Anuncios

Un comentario en “Instalando docker en Mac OS X

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s