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.
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’
Un comentario en “Instalando docker en Mac OS X”