Docker - Optymalizacja na Mac OS

Home > Blog > Docker - Optymalizacja na Mac OS
System Docker działa niezwykle wolno w trakcie pracy z aplikacjami / narzędziami posiadającymi bardzo dużą liczbę plików. Przykładem jest np. aplikacja napisana w PHP Symfony (w katalogu vendor zazwyczaj znajduję się mnóstwo plików i katalogów). Jednym z głównych problemów jest problem ze wsparciem systemu plików NFS. Drugim problemem powodującym zauważalnie wolniejsze działanie Dockera na Mac OS niż na systemie Linux jest dodatkowa warstwa abstrakcji, jaką jest jądro systemu Linux. Działanie kontenerów wymaga Linuxa a Mac OS powstał na bazie UNIXa. Niestety Unix jeszcze nie posiadał obsługi kontenerów.
 
Pierwszym krokiem jaki należy wykonać jest zainstalowanie Dokera i Docker Machine. Można go pobrać z oficjalnej strony lub użyć do tego celu Homebrew.
 
$ brew install docker docker-machine
Drugim krokiem jest zainstalowanie maszyny xhyve. Jest to lekkie wirtualne środowisko na Mac OS. Działa szybciej niż VirtualBox.
 
$ brew install docker-machine-driver-xhyve
$ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
$ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
Kolejnym etapem jest zainstalowanie Dinghy. Jest to narzędzie budujące własną Docker Machine. Maszyna zbudowana przez Dinghy pozwala uruchomić takie usługi jak NFS i DNS. W celu zainstalowanie tego pakietu, należy użyć komendy:
 
$ brew tap codekitchen/dinghy
$ brew install dinghy
Czwartym krokiem jest utworzenie Docker Machine:
 
$ dinghy create --provider dinghy
Piątym i ostatnim etapem, jest dodanie kilku stałych do ~/.bash_profile:
 
export DINGHY_HOST_MOUNT_DIR=/Users/<user_name>/Workspace
export DINGHY_GUEST_MOUNT_DIR=/Users/<user_name>/Workspace

export DOCKER_HOST=tcp://192.168.64.8:2376
export DOCKER_CERT_PATH=/Users/<user_name>/.docker/machine/machines/dinghy
export DOCKER_TLS_VERIFY=1
export DOCKER_MACHINE_NAME=dinghy
Oczywiście adres hosta oraz katalog (sugeruję wybrać główny katalog z projektami), który ma być wspierany przez Dinghy, każdy ustawia swój.
 
Od tego momentu, każdy może się cieszyć zauważalnym zwiększenie wydajności (nawet 2, 3 - krotnym) środowiska Docker. Warto zaznaczyć, że dzięki prywatnemu DNS dostarczonemu przez Dinghy, można teraz odwoływać się do kontenera przez adres:
 
http://<nazwa_kontenera>.docker:<port>

Copyright © 2020 BitApp