Использование Docker в терминале Mac Os X

Этот небольшой пост посвящен именно использованию докера на маке. Если у вас еще не установили докер, просто следуйте документации.

Итак, у вас есть установленный Vagrant и VirtualBox, также вы имеете склонированные репозиторий с докером и запущенное виртуальное окружение.

Чтобы начать использовать докер нам придется проделать несколько нехитрых операций, а точнее нужно скомпилировать клиент докера из исходников и запустить демон докера в виртуальной машине.

Если у вас нет Go, то его нужно установить, а также установить Mercurial (он понадобиться чуть позже).

brew install go --devel --cross-compile-common --with-cgo

Теперь создадим временную папку tmp, в которую скачаем все зависимости для компилирования докера. Mercurial нам нужен для того, чтобы получить все зависимости, так как одна из них лежит в меркуриал репозитории.

mkdir tmp
export GOPATH=`pwd`/tmp
go get -v github.com/dotcloud/docker/docker

В склонированном репозитории докера нужно переключиться на последнюю версию (в моем случае это v0.7.5), в скаченных зависимостях нужно найти докер и тоже переключиться на последнюю версию.

Немного отвлечемся от компилирования докера, оставив на последок, и перейдем к работе с виртуальной машиной. После трех простых шагов манипуляции с виртуальной машиной будут закончены.

  1. Нам нужно добавить строчку с пробросом порта в блок Vagrant::Config.run нашего Vagrantfile.

     config.vm.forward_port 4243, 4243
    
  2. Теперь немного изменим файл /etc/init/docker.conf внутри виртуальной машины.

     description "Docker daemon"
    
     start on filesystem and started lxc-net
     stop on runlevel [!2345]
    
     respawn
    
     script
         /usr/bin/docker -d -H=tcp://0.0.0.0:4243/
     end script
    
  3. Перезагрузим виртуальную машину

     vagrant reload
    

После всех наших действий нам осталось запустить компиляцию докера. Перейдем в наш склонированный репозиторий в папку docker и запустим компиляцию

go build docker.go

Наконец-то можете проверить работу докера

./docker -H tcp://127.0.0.1:4243/ version