Docker on OSX

DockerLogoRunning Docker on OSX can be made possible using different methods:

Docker containers require kernel features which are only available in modern Linux kernels. In order to run Docker on OSX for example, one needs a virtual machine with a smallish Linux running in it.

Docker for Mac Beta

Docker for Mac uses xhyve, a lightweight OS X virtualization solution built on top of Hypervisor.framework. This requires you to run OS X 10.10 Yosemite and higher. The VM is provisioned with Alpine Linux running Docker engine.
The Docker API is exposed in /var/run/docker.sock where the docker and docker-compose CLI commands may directly communicate with. This is one of the benefits compared to Docker machine, especially when you do not need to manage your docker VM, or set specific environment variables before running it. Docker for Mac is further installed as native OSX application and only provides symlinks to /usr/local/bin/{docker,docker-compose}.
After the app is installed, I only had to manually add the bash-completion provided by Homebrew.

cd /usr/local/etc/bash_completion.d
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion

I was granted a beta access key for Docker for Mac today 🙂 Even if this is still beta, it already feels much more integrated into my test and development workflow rather than using Docker machine. Awesome job! 🙂

 

Docker Machine

Docker machine will use Virtualbox as VM provider. In order to avoid manual interaction in each terminal I’m opening I’ve added an alias into my bashrc file.

vim $HOME/.bashrc
alias enable_docker=". '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'"

This script doesn’t do much except for starting the VM using the Virtualbox cli tools and then source the exported variables into your current shell environment. That way the docker client will be able to communicate with the docker daemon running inside the VM.

Parallels instead of Virtualbox

While Virtualbox works fine there are significant performance improvements when using Parallels on OSX. Furthermore it is reasonable to only use one application firing virtual machines (the Icinga Vagrant boxes also provide support for Parallels as Vagrant provider).
I was therefore looking for a native Parallels driver for Docker. Following this issue shed some light on the history of Docker drivers and their support as plugins. Parallels doesn’t seem to be officially supported by Docker themselves according to their documentation. Though there is an official driver plugin from Parallels themselves which works for Pro and Business subscriber editions only. The main reason seems to be the limited cli features in the Standard edition.

Requirements for Parallels

The main requirement is at least Docker 1.9.1 providing the Docker toolbox 0.5.1+.

Installation

I’m using Homebrew, the manual installation parts are described in the documentation. Brew tries to pull docker-machine as well – if you’re using the version from docker.com you can safely ignore the linking error.

brew install docker-machine-parallels

Create a docker machine

docker_machine_parallels_runUse the driver “parallels” and add the name “docker-parallels”. This will create a new Parallels VM with 20GB HDD and 1GB RAM by default. In case you want to disable sharing the /User mounts, add –parallels-no-share.

docker-machine create --driver=parallels docker-parallels

Add the environment variables to your shell and run docker pulling the latest Fedora container.

eval $(docker-machine env docker-parallels)
docker run -ti fedora:latest bash

Automate it

I’ve partially modified the Docker toolbox script in order to support Parallels.

wget https://raw.githubusercontent.com/dnsmichi/docker-tools/master/toolbox/scripts/osx/start.sh -O /usr/local/bin/enable_docker
chmod +x /usr/local/bin/enable_docker
enable_docker

 

Conclusion

While the Docker Machine integration allows room for improvement the Parallels driver works like a charm. Though I have to admit – while looking into the Parallels integration, Docker announced Docker for Mac and I was eagerly waiting for it.
Both methods are working, but the Docker for Mac application integrated natively into OSX is pretty slick. I like it a lot!
If you are looking for more Docker and its many possibilities – follow our blog closely and visit the Docker training sessions 🙂

Michael Friedrich
Michael Friedrich
Senior Developer

Michael ist seit vielen Jahren Icinga-Entwickler und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi und der Linzer Torte. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht in der Community helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst...

Debugging mit Docker

docker
Docker ist uns allen als leichtgewichtige Lösung bekannt mit deren Hilfe man Anwendungen in Containern bereitstellen kann. Ist man etwas kreativ, kann man mit Docker aber viel mehr “verbrechen”. So kann man beispielsweise Docker sehr gut zum debuggen von Applikationen verwenden.
Jetzt fragt ihr euch sicher: “Was ist den bei dem kaputt? Zum debuggen brauch ich in 90 % aller Fälle eine Konsole”. Aber warum den nicht!? Es ist zwar gegen die Idee von Docker, aber man kann damit natürlich auch einen kleine Debugging-Container mit SSH betreiben.
 
 
Hier ein kurzes Beispiel in Form eines Dockerfiles:
FROM debian:8.4
MAINTAINER $your_name $your_email


# install needed packages
RUN apt-get update && apt-get install -y openssh-server rsync rsnapshot vim git sudo ntpdate ethtool screen dnsutils shorewall curl unzip telnet net-tools ntp ntpdate


# prepare root account and login
RUN mkdir /var/run/sshd

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile


# prepare user
RUN groupadd -g 10000 $your_name
RUN useradd -g 10000 -u 10000 -s /bin/bash -m $your_name
RUN mkdir /home/$your_name/.ssh && chmod 750 /home/$your_name/.ssh && chown $your_name. /home/$your_name/.ssh
RUN echo "<$your_ssh_key>" > /home/$your_name/.ssh/authorized_keys && chmod 600 /home/$your_name/.ssh/authorized_keys && chown $your_name. /home/$your_name/.ssh/authorized_keys
RUN echo "$your_name ALL=NOPASSWD: ALL" > /etc/sudoers.d/$your_name && chmod 640 /etc/sudoers.d/$your_name


# map ssh port and run ssh
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

Wenn ihr jetzt alle $your_name durch euren Benutzernamen ersetzt (Variablen funktionieren bei Docker leider nicht in der RUN-Umgebung) erhaltet ihr ein aktuelles Debian 8.4 mit einem SSH Zugang. Dieses Dockerfile mit SSH kann man nun z. B. sehr einfach um Icinga2 Pakete erweitern. Etwas weiter gesponnen könnte man noch verschiedene Betriebssystemversionen oder die Auswahl Icinga2 Stable oder Snapshot mit einbauen.
Alles in allem erhält man einen sehr leichtgewichtigen Container der das Debuggen ermöglicht, der sehr schnell provisioniert ist und man mit der entsprechenden Storage Config sogar anwendungsspezifische Konfigurationen und Dateien mit schleppen kann.

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker, arbeitet an seiner dritten Millionen Euro (aus den ersten beiden ist nix geworden) und versucht die Weltherrschaft an sich zu reißen.

OSDC 2016 – Klappe, die erste

Montag, 25.04. 2016
Haben wir alles dabei? Haben wir auch wirklich nichts vergessen und an alles gedacht? Jaaaaa, wir haben alles! Und los geht’s zur OSDC 2016. Unser Events-Team und unsere Trainer reisten bereits am Montag ins Mercure Hotel MOA nach Berlin und bereiteten alles für die Workshops am Folgetag vor. Als dann alles aufgebaut war, haben wir uns – wie gewohnt – mit Essen belohnt. Nachdem unter anderem diverse 42 cm Pizzen verdrückt wurden, fielen alle zufrieden in Ihre Betten, voller Erwartungen an den nächsten Tag.

Dienstag, 26.04.2016
Der erste Tag der Konferenz startete mit unseren drei Intensiv-Workshops. Die Teilnehmer konnten zwischen Docker, Elastic Stack und Graphing wählen. Um 10 Uhr morgens ging es für alle los. Leckeres Essen in den Pausen brachte den Trainern und Teilnehmern die Kraft für die Intensiv-Workshops, ehe die restlichen NETWAYS Mitarbeiter im Hotel ankamen, um das Events-Team beim Aufbau für die Konferenz tatkräftig zu unterstützen.

Nach getaner Arbeit durften Teilnehmer, Trainer, Referenten und Mitarbeiter ein tolles gemeinsames Abendessen im Konferenzhotel genießen. Für die NETWAYS Crew ging es anschließend, in geordneten Zweierreihen versteht sich, Richtung Mitarbeiterhotel – natürlich nicht, ohne noch einen Stopp beim allseits beliebten “Tele-Inder”* einzulegen. Und da auf (starken) Durst bekanntlich der (Heiß-)Hunger folgt, lag es nahe, noch ein paar Schritte weiter zu gehen, um beim “Dönerturm” nach dem Rechten zu sehen…  😉



 
Redaktionelle Anmerkung
*Tele-Inder, der: Seines Zeichens rassiger Berliner Spätkauf, der den entwurzelten NETWAYSlern bei Widrigkeiten jedweder Art, aber auch in allen anderen Gemütslagen, gerne als heimelige Zuflucht in der fernen preußischen Hauptstadt dient.
Teleinder

Ready, Steady, Go! – OSDC 2016 got started with today's workshops

blog_sidebar_osdc_2016_2_194x120Endlich ist es soweit! Heiß ersehnt ist die OSDC 2016 heute Morgen um 10 Uhr gestartet. Derzeit laufen die drei Intesiv-Workshops auf Hochtouren:
 
 
MA_bsheqa_frei_deu_eng_125x125
Advanced Graphing – with Graphite & Co. mit Blerim Sheqa
MA_ssaemann_frei_deu_eng_125x125
Docker – Virtual Containers mit Sebastian Saemann und
MA_dokon_frei_deu_eng_125x125
Elastic Stack – Enterprise Logfile Management mit David Okon
 
Während die Teilnehmer vollständig in die Untiefen der jeweiligen (Workshop-)Materie abgetaucht sind, wird im Hintergrund alles zum Erhalt ihres leiblichen Wohls gegeben. Zwei aparte Kaffeepausen und ein tolles Mittagessen sollten zur Regeneration während der geistigen Höchstleistung das ihre beitragen 🙂
Die Workshops dauern noch bis 17 Uhr, danach ist maximal Entspannung und einfach nur Wohlfühlen in unserem Konferenzhotel angesagt!
Heute Abend geht es dann um 19 Uhr mit einem gemeinsamen Abendessen weiter. Zum Ausklang des ersten Tages und gleichzeitig als Einstimmung auf die kommenden beiden Konferenztage laden wir alle aller Teilnehmer (die das Package GOLD gebucht haben) und die bereits angereisten Referenten ein, in geselliger Runde erste Kontakte zu knüpfen, sich schon mal in die eine oder andere spannende Datencenter-basierte Diskussion verwickeln zu lassen, oder auch einfach über die Anreise und etwaige persönlichen Erwartungen an die Konferenz ins Gespräch zu kommen.
Wir freuen uns sehr, Euch alle zur Open Source Data Center Conference 2016 begrüßen zu dürfen und wünschen Euch einzigartige drei Tage voller interessanter Eindrücke, neuer Perspektiven, wertvoller Erkenntnisse und toller Gelegenheiten Euch untereinander kennen zu lernen, zu treffen und auszutauschen!
 

Pamela Drescher
Pamela Drescher
Head of Marketing

Pamela hat im Dezember 2015 das Marketing bei NETWAYS übernommen. Sie ist für die Corporate Identity unserer Veranstaltungen sowie von NETWAYS insgesamt verantwortlich. Die enge Zusammenarbeit mit Events ergibt sich aus dem Umstand heraus, dass sie vor ein paar Jahren mit Markus zusammen die Eventsabteilung geleitet hat und diese äußerst vorzügliche Zusammenarbeit nun auch die Bereiche Events und Marketing noch enger verknüpft. Privat ist sie Anführerin einer vier Mitglieder starken Katzenhorde, was ihr den absolut...

Get ready with NETWAYS

nerd_of_awesome_by_movillefacepalmplz-d5qvmzxGet ready with NETWAYS! Das trifft für mich auf die letzten 3 Jahre zu, in denen ich meine Ausbildung hier bei NETWAYS absolvieren durfte. An meinem ersten Tag, hatte ich keine Ahnung von Linux, Servern geschweige denn von OpenSource. Aber das hat hier niemanden abgeschreckt und mir wurde über die Zeit alles nötige beigebracht um selbstständig arbeiten und lernen zu können. Verschiedene Linux Distributionen, Hardware und Verkabelungen im Rechenzentrum, Pflege der HQ-Infrastruktur, Kundensupport und auch die Entwicklung einiger Automatisierungsskripte waren unter anderem Teil meiner Ausbildung hier. Ich empfand es als großen Vorteil, Teil einer verhältnismäßigen jungen und aufstrebenden Firma zu sein, allein schon deswegen, weil man jeden einzelnen Kollegen beim Namen kennt. Aber auch deswegen, weil eine Firma wie diese, viele neue Produkte testet und versucht sie in den produktiven Einsatz zu überführen. Manchmal erfolgreich, manchmal eher weniger. So bekommt man sehr viel von der “neuen Technik” mit und sieht in manchen Situationen auch wie es nicht geht.
Besonders überrascht war und bin ich teilweise immernoch, über den Umgang miteinander. Es herrscht ein eher freundschaftliches Verhältnis, sodass man auch in der Freizeit oder nach Feierabend mal zusammen einen trinkt, die ein oder andere Feier miterlebt oder eine LAN-Party veranstaltet. Auch Konferenzen und Schulungen in Nürnberg, Berlin, Köln, Düsseldorf, Barcelona oder den USA waren bisher immer ein sehr angenehmes Erlebnis. Soweit also eine Firma, in der man jeden Tag aufs neue gern arbeitet.
Zu jeder Ausbildung gehört am Ende auch eine Abschlussarbeit in Form eines Projektes und dessen Dokumentation. Mein Projekt befasst sich damit, eine Docker-Registry aufzusetzen. In diesem Projekt war sehr viel gefordert. Ich musste mich in kurzer Zeit in ein neues Thema einarbeiten, eine virtuelle Maschine mit entsprechenden Anforderungen aufsetzen, Fehler korrigieren, so viel automatisieren wie möglich und alles anschließend dokumentieren. Als letztes gilt es dieses Projekt im Sommer einem Prüfungsausschuss zu präsentieren und sich deren Fragen zu stellen.
Nach erfolgreichem Abschluss meiner Ausbildung werde ich im Support arbeiten und versuchen unseren Kunden bestmöglich zu helfen. Ich freue mich auf die Arbeit und auch darauf weiterhin zu lernen und Erfahrungen zu machen.
Trotz alledem lernt man nie aus und es ist auch unmöglich alles beigebracht zu bekommen. Aber bei NETWAYS bekommt man eine sehr gute Vorbereitung auf den Alltag in der IT Branche nach der Ausbildung. Für den Fall, dass jemand auf der Suche nach einer geeigneten Firma ist, dann ist er bei uns an der richtigen Stelle!

 

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

To secure one of the last few remaining OSDC tickets you will have to be FAST & FURIOUS!


osdc_aktuelles_Konfbanner_registerThe Open Source Data Center Conference highlights current challenges and opportunities of open source software in data centers and huge IT environments, while covering the entire scope of OS data center solutions.
This year’s conference program is focused on the thematic topics INFRASTRUCTURE AS CODE, CONTAINERS AND DATABASES and TOOLS & INFRASTRUCTURE. Besides that, you can – as always – look forward to the the conferences’ second key feature: the great and exclusive opportunity for exchange of ideas and latest knowledge as well as in-depth discussions with other experienced professionals and well known experts in the field of OS data center solutions. To get a first impression, check out our evening event location as well as the relaxed and casual atmosphere provided by the conference venue.
The high class speaker line-up 2016 includes OS-experts as Jörg Schad, software engineer at Mesosphere, supporting the Apache Mesos Project; Monica Sarbu, creator of the Packetbeat open source project and team lead of the Beats inside Elastic; Jonathan Boulle, working at CoreOS; Dawn Foster, consultant at The Scale Factory; Kris Buytaert, one of the instigators of the devops movement, currently working for Inuits; Ján Lieskovský, software engineer at Red Hat and many more.
Secure your ticket now and profit from the comprehensive experience of international OS specialists, proven best practices and the get latest know-how for your daily practice!
If you are lucky you might even catch one of the strictly limited workshop seats, that are still available. Workshop topics are: ADVANCED GRAPHING – with Graphite, DOCKER – Virtual Containers and ELASTIC STACK – Enterprise Logfile Management.
 

Pamela Drescher
Pamela Drescher
Head of Marketing

Pamela hat im Dezember 2015 das Marketing bei NETWAYS übernommen. Sie ist für die Corporate Identity unserer Veranstaltungen sowie von NETWAYS insgesamt verantwortlich. Die enge Zusammenarbeit mit Events ergibt sich aus dem Umstand heraus, dass sie vor ein paar Jahren mit Markus zusammen die Eventsabteilung geleitet hat und diese äußerst vorzügliche Zusammenarbeit nun auch die Bereiche Events und Marketing noch enger verknüpft. Privat ist sie Anführerin einer vier Mitglieder starken Katzenhorde, was ihr den absolut...