Apps en software

Zelf aan de slag met Docker op je Synology NAS

Met de komst van DSM 5.2 werd het mogelijk om het nieuwe package Docker te installeren op je Synology NAS. Persoonlijk kon ik niet wachten om hiermee te experimenteren in de bèta van DSM 5.2. Onlangs kreeg ik de vraag wat Docker nu eigenlijk is, en wat je er mee kunt. Reden temeer om hier eens wat over te vertellen, en te laten zien hoe je eenvoudig zelf aan de slag kunt met het package.

Als eerste ga ik je vertellen dat ik echt geen Docker specialist ben. Het voordeel van Docker, is dat het eigenlijk erg eenvoudig aan de praat te krijgen is en hiermee laagdrempelig voor gebruikers van een Synology NAS. Maar goed, first things first, wat is nu eigenlijk Docker?

Wat is Docker?

Docker is een open platform voor ontwikkelaars systeembeheerders voor het bouwen, uitrollen en aanbieden van applicaties. Hier komt het eigenlijk kort door de bocht op neer. Je bundelt een applicatie tot een zogenaamd Image en kunt dit eenvoudig uitrollen en gebruiken binnen het Docker platform. Maak jij een image en werkt het goed, dan kun je er vanuit gaan dat als ik het binnen Docker start, het net zo goed werkt.

Door afscheid te nemen van de afhankelijkheid van het besturingssysteem kun je eenvoudig de focus leggen op aanbieden van een applicatie. De systeembronnen die je hebt zijn volledig ter beschikking van de Docker apps en je hebt geen extra besturingssystemen nodig. Heb je Docker op je Synology NAS en op je eigen pc, dan kun je zonder problemen de applicaties delen.

Een andere handige eigenschap is dat je applicatie is dat hij in een eigen container draait. Dit wil zeggen dat de applicatie geïsoleerd is van je andere applicaties, een soort van eigen digitale zeepbel.

Docker zorgt door middel van het toewijzen van lokale poorten dat je kunt communiceren met de applicatie, en vertaald dit de zeepbel in. De applicatie zelf merkt hier niets van en jij als gebruiker ook niet. Hiermee kun je bijvoorbeeld meerdere versies van hetzelfde softwarepakket gebruiken, zonder dat dit elkaar bijt. Denk maar eens aan de mogelijkheden voor het maken van een test en productieomgeving van Wordpress op je Synology NAS, of misschien wil je ook wel een bèta versie erbij. Geen probleem, zolang je maar voldoende systeembronnen beschikbaar hebt.

Aan de slag met Docker

Om Docker te kunnen gebruiken op je Synology NAS is het noodzakelijk om het package eerst te installeren. Je kunt dit, net als bij andere packages, eenvoudig doen vanuit het Package Center. Je herkent Docker aan het walvis icoon.

Synology_Docker_DSM52_tech365nl_001

Is Docker eenmaal geïnstalleerd, start dan het package om verder te gaan. Dit kan vanuit het Package Center, of vanuit het Hoofdmenu.

Synology_Docker_DSM52_tech365nl_003

Wanneer je Docker start krijg je een overzicht van de actieve containers (applicaties) en de gebruikte systeembronnen. Zoals je kunt zien is het overzicht nu nog leeg.

Applicaties zoeken is erg eenvoudig door het gebruik van de zogenaamde Docker HUB. Alle applicatie images die beschikbaar zijn via deze hub kun je downloaden binnen Docker. In het Synology Package vinden we dit terug bij de optie Register.

Synology_Docker_DSM52_tech365nl_002

Als voorbeeld heb ik gezocht naar de applicatie OpenERP. Zoals je ziet is er een image beschikbaar genaamd “tinyerp/ubuntu-openerp” van september 2014 met een beoordeling van 9 sterren. Die ga ik gebruiken en download het image eenvoudig door erop te dubbelklikken.

Synology_Docker_DSM52_tech365nl_004

 

Wanneer het image is gedownload is het alleen nog een kwestie van instellen voor gebruik. Dubbelklik het image dat je hebt gedownload bij Image en doorloop de installatiestappen.

Synology_Docker_DSM52_tech365nl_005

De eerste stap is het opgeven van een naam voor de container waarin de applicatie wordt gestart. Dit kun je zien als de zeepbel waar ik het eerder over had. Geef een naam op voor de container en voeg eventueel gewenste poortinstellingen toe. Je kunt er namelijk voor kiezen om zelf de poort waarop je met de applicatie communiceert toe te voegen. Heb je geen voorkeur? Gebruik dan de optie Poorten automatisch toewijzen om het jezelf zo makkelijk mogelijk te maken.

Synology_Docker_DSM52_tech365nl_006

De hoeveelheid beschikbare systeembronnen voor je applicatie bepaal op je binnen je container. Activeer de optie Bronbeperking om controle te hebben over het verbruik van je applicatie. Wil je snel toegang tot je applicatiecontainer vanaf het DSM bureaublad? Vink dan de optie Snelkoppeling op bureaublad maken aan.

Mocht je op voorhand weten welke poorten je nodig hebt en kies je voor het handmatig toekennen van de lokale poorten, dan kun je als snelkoppeling ook kiezen voor Webpagina en de uiteindelijke URL opgeven, bijvoorbeeld: http://ds01:49153

Synology_Docker_DSM52_tech365nl_007

Controleer of alles naar wens is ingesteld en kies of je de container direct wil starten na het aanmaken. Er is ook nog een mogelijkheid voor het direct instellen van de geavanceerde instellingen, maar hier sta ik later nog even bij stil.

Synology_Docker_DSM52_tech365nl_009

Na het aanmaken van je container voor OpenERP8 zie je keurig de gewenste snelkoppeling op het bureaublad. Dubbelklik op de snelkoppeling om direct de container informatie en externe poorten van de applicatie te zien.

Synology_Docker_DSM52_tech365nl_008

Je kunt bij de poortinstellingen zien dat mijn OpenERP container gebruik maakt van een tweetal lokale poorten voor communicatie, namelijk: 49153 en 49154. De twee poorten worden door Docker vertaald naar de containerpoorten 8069 en 8072 die onderdeel zijn van OpenERP.

Ik kan er nu ook voor kiezen nog een tweede container met OpenERP te installeren die ook gewoon gebruik maakt van poort 8069 en 8072. Docker zal er vervolgens zelf voor zorgen dat hier een andere lokale poort aan gekoppeld wordt, zodat beide elkaar niet in de weg zitten.

De applicatie is nu klaar voor gebruik! Even snel testen of het werkt door in mijn browser naar de NAS (DS01) te gaan op basis van lokale poort 49153. Dit zier er goed uit en ik kan nu aan de slag met OpenERP8.

Synology_Docker_DSM52_tech365nl_012

 

Beheer van je Docker containers

Nu je één of meerdere Docker containers hebt gemaakt, wil je hier ook wat mee kunnen doen. Vanuit je container heb je toegang tot een aantal beheerfuncties zoals: het starten/stoppen van de container, opnieuw starten, stoppen forceren en een aantal monitoringfuncties.

Container status

Synology_Docker_DSM52_tech365nl_008

Je ziet in je containerstatus-venster duidelijk wat het actuele verbruik is van je applicatie. Zo gebruikt OpenERP nu 1,97% van de processor in mijn Synology NAS en 83MB RAM. Indien je dit toch liever anders ziet dan kun je het eenvoudig aanpassen. Het is wel noodzakelijk om de container hiervoor uit te schakelen.

Synology_Docker_DSM52_tech365nl_010

Het tabblad Proces geeft je inzicht in de processen die door de container worden gebruikt. Bij ieder proces zie je ook de hoeveelheid CPU-gebruik en geheugengrootte. Let op, dit zijn de processen binnen de container!

Synology_Docker_DSM52_tech365nl_011

Je kunt voor de container ook een uitgebreid logboek bekijken op het tabblad Logboek. Eventuele kritieke problemen, waarschuwingen en informatieve berichten worden hier getoond.

Geavanceerde container instellingen

Volume

Zoals ik al eerder vertelde, zijn er ook nog een aantal geavanceerde instellingen waar je mee aan de slag kunt. Een interessante instelling is: Volumes. De optie stelt je in staat om een gehele map of bestanden te koppelen aan je container. Dit is een zeer krachtige optie, want hiermee is het ineens mogelijk om directe toegang tot bestanden of netwerklocaties te linken aan je applicatie.

Koppel ik een aparte map op mijn NAS aan de OpenERP container, dan is het mogelijk om vanuit de applicatie een back-up te maken naar deze map. Fysiek staan de bestanden dan buiten de container, maar ik kan er wel vanuit de container mee werken.

Koppelingen

Een andere instelling die beschikbaar is, is de zogenaamde Koppelingen. Door je container te koppelen aan een andere bestaande container wordt hij automatisch gestart als de hoofdcontainer start. Handig voor wanneer je een aantal gerelateerde applicaties gebruikt in verschillende containers.

Milieu

De laatste geavanceerde instelling is Milieu. Hier vinden we een aantal opties terug die zich wat meer richten op de omgeving binnenin de container. We kunnen kiezen om de container uit te voeren met hogere machtigingen dan standaard. Ook het gebruik van omgevingsvariabelen is mogelijk.

Handige informatie

Je kunt je voorstellen dat de mogelijkheden bijna onbeperkt zijn met Docker. In mijn blogpost laat ik je een klein stukje zien van wat er mogelijk is, maar ga er vooral zelf mee aan de slag. Zoek die applicatie die je normaal overal met de hand moet installeren, of waar je iedere keer een aparte server voor moet maken.

Heb je een onwijs handig image gevonden, of heb je een handige tip voor de lezers, laat gerust een reactie achter onder deze post of stuur een bericht via het contactformulier.

Martijn

Martijn is naast eigenaar van tech365 ook werkzaam als IT Professional. Zijn passies zijn gadgets, fotografie en alles wat met automotive te maken heeft. Je kunt hem ook vinden als blogger op wielerblog www.lifebehindbars.nl

Gerelateerde berichten

4 reacties

    1. Helaas is met de introductie van DSM 6.0 ook een licentiemodel geïntroduceerd. Dit betreft ook Docker. Op DSM 5.0 was de software nog gratis te gebruiken. Ik snap waar het merk heen wil, maar helaas hebben wij niet zakelijke gebruikers daar weinig aan.

  1. Hoi Martijn,

    Leuke Post! Ik gebruik docker ook op mijn nas om verschillende applicaties in te draaien. Nu ben ik wel tegen een probleem aangelopen tijdens het instellen van backups. Ik kan namelijk niet makkelijk bij de data die is opgeslagen in deze containers.

    Voor zover ik het heb begrepen draaien de docker applicaties in een apparte container met vaak een eigen database. In je post heb je het over een geavanceerde instelling genaamd Volumes, waarmee je links kan leggen. Heb je hier een voorbeeld van want dit zou wel eens de oplossing kunnen vormen voor mijn probleem.

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

Back to top button