<- Dlite - Docker с человеческим лицом в OS X
Введение
Как оказалось существует более простой и удобный способ установки Docker в OS X. Маленькая утилита под названием Dlite. В предыдущем посте я писал о том, как установить и настроить Docker под OS X без использования VirtualBox, что сэкономит достаточно места на жестком диске и памяти.
Установка
Dlite это маленькая утилита написанная на языке Go и использующая libxhyve для управления гипервизиром xhyve, о котором я так же писал в предыдущем посте. Она установит и настроит все необходимое для работы с докером. Все что необходимо сделать - это скачать бинарник dlite по ссылке https://github.com/nlf/dlite/releases и кинуть куда нибудь в /usr/local/bin/, а затем запустить sudo dlite install
и dlite start
. Виртуальная машина будет автоматически активироваться после перезагрузки системы, что согласитесь очень удобно.
Для работы с контейнерами докера вам будет доступен хост local.docker
, после установки. Так же можно подключиться к данному хосту по ssh:
➜ ~ ssh docker@local.docker
DhyveOS version 2.2.0
Docker version 1.10.0, build 590d5108
$
Для установки Dlite я прошел следующие этапы:
brew install xhyve # не уверен надо ли
brew install docker # я думаю docker лучше установить
wget -O /usr/local/bin/dlite https://github.com/nlf/dlite/releases/download/1.1.5/dlite
chmod +x /usr/local/bin/dlite
sudo dlite install
dlite start # запуск из под tmux может вызвать ошибку, об этом сказано в "Troubleshooting"
Проверяем сам docker
➜ ~ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.10.0
Storage Driver: btrfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.3.3-dhyve
Operating System: Buildroot 2015.11.1
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.957 GiB
Name: dlite
ID: BIOA:AMNG:RV6H:NWDY:XLTG:GNCB:5SBM:LVM4:2MOD:VEXL:ZFUD:24SV
➜ ~
Все работает.
Работа с удаленными директориями
Работа с удаленными директориями так же поддерживается так сказать "из коробки". Dlite автоматически примонтирует директорию /Users в гостевую машину. Если посмотреть корневую директорию на гостевой машине можно увидеть примонтированную директорию Users:
➜ ~ ssh docker@local.docker
DhyveOS version 2.2.0
Docker version 1.10.0, build 590d5108
$ ls /
Users dev home lib linuxrc mnt proc run sys usr
bin etc init lib64 media opt root sbin tmp var
$
Поэтому у вас есть возможность сделать что то вроде этого:
docker run --rm \
--name web \
-v "/Users/<username>/webapp:/webapp" \
-it alpine sh
Директория /Users/<username>/webapp
будет доступна в контейнере "web" по адресу /webapp
Немного полезной информации
- Dlite хранит файл настроек, включая образы системы в директории
~/.dlite
- После установки в файл /etc/hosts будет добавлена строка
192.168.64.2 local.docker # added by dlite
- По умолчанию, если не указывать параметры для команды docker, Docker будет использовать файл
/var/run/docker.sock
для соединения с гостевой машиной. Данный файл уже создает dlite. - Подключиться к гостевой машине можно командой
ssh docker@local.docker
- Если вы переустановите dlite, то он будет использовать уже другой IP адрес. Например, если во время первой установки IP адрес был
192.168.64.2
после переустановки dlite IP будет заменен на 192.168.64.3. Чтобы этого избежать и вернуть старый IP можно удалить файл/var/db/dhcpd_leases
- Запуск демона dlite из под tmux может не произойти, поэтому лучше этого не делать.
- После перезапуска системы dlite будет автоматически запущен