Olen käyttänyt Dockeria jo monta vuotta. Intoni hiipui jonkin verran sen jälkeen, kun Amazon julkaisi Lambda- ja API Gateway -palvelut. Ne mahdollistivat uudenlaisen Serverless-paradigman, joka teki Dockerista vähemmän kiinnostavan uusien palveluiden kehityksessä. Dockerille on silti ollut jatkuvaa pientä tarvetta siellä täällä. Se on oivallinen tapa asentaa esimerkiksi natiivisti käännettyjä Linux-versioita Node.js-moduuleista silloin, kun työskentelee Mac-koneella eikä niitä muuten olisi käytettävissä.

Haasteena on aina ollut se, että Docker on vaatinut Linux-käyttöjärjestelmän. Mac- ja Windows-käyttäjät ovat joutuneet ajamaan Dockeria erilaisissa virtuaalikoneissa. On ollut Vagrant-versioita, boot2dockeria, docker-machinea ja VirtualBox-asennuksia.

Linkin takaa löytyvvät Docker for Mac ja Docker for Windows korjaavat vihdoin tämän puutteen. Docker toimii nyt Macissa ja Windowsissa ilman erillisen virtuaalikoneen asentamista. Uusi Docker käyttää MacOS 10.10:n uutta Hypervisor.frameworkia (Windowsissa Hyper-V:tä) ja ajaa sen päällä kevyttä Alpine Linux -jakelua, joka ei näy käyttäjälle lainkaan. Ei siis tarvitse enää huolehtia virtuaalikoneista tai virtuaalilevyistä. Homma vain toimii.

Parasta tässä on se, että Macin levyn sisältö näkyy Docker-konteille suoraan volume mappingin kautta. Nyt voi ajaa esimerkiksi MacOS:n Terminalissa tällaisen komennon:

docker run -it $PWD:$PWD -w $PWD ubuntu:16.04

Komento avaa Terminalin oletushakemistoon Ubuntu Linux -shellin. MacOS:n tiedostot näkyvät shellissä normaalisti ja niitä voi käsitellä Linuxin työkaluilla. Tällä tavoin on helppo esimerkiksi asentaa aiemmin mainittuja Linux-natiiviversioita Node.js-moduuleista.

Lisäbonuksena Docker for Mac sisältää myös erikseen asennettavan graafisen Kitematic-käyttöliittymän. Käyttöliittymällä voi näppärästi tarkastella ja hallita omia Docker-konttejaan. Lisäksi se integroituu myös Docker Hubiin, joten Docker-imageja voi latailla suoraan pilvestä tai julkaista niitä pilveen.

Olen käyttänyt Docker for Macia sen beta-julkaisusta lähtien ja se on vaikuttanut hyvin stabiililta. Joitakin ongelmia on ollut ja pientä kaatuilua on esiintynyt, mutta satunnaisessa käytössä se toimii erittäin hyvin.

https://blog.docker.com/2016/07/docker-for-mac-and-windows-production-ready/