Forum

Notifications
Clear all

Inleiding Docker

Abib
 Abib
(@abib)
Noble Member

Docker is een systeem om diverse services op één systeem (het host systeem) aan te bieden zonder dat de configuratie van de ene service de andere ‘bijt’ door conflicterende afhankelijkheden. Dit doet Docker door gebruik te maken van zogenoemde containers. Iedere container draait een service, waarbij alle bestanden voor die service in die container bevat zijn. Containers kunnen onderling verkeer sturen middels een virtueel netwerk op de server en via een vorm van NAT en portforwarding met de buitenwereld praten. De service die in een container draait wordt ook wel een microservice genoemd.

Het leuke aan een Docker container is dat deze een complete installatie vormt. Een container wordt eenmaal gebouwd en kan dan gedistribueerd worden over meerdere hosts. Voor vele services bestaat er een originele Docker container die via het internet automatisch kan worden gelanceerd. Bij het eerste gebruik wordt de laatste (of een specifieke) versie gedownload, waarna telkens de lokale versie zal worden gebruikt tot er een nieuwere is.

Om Docker te kunnen gebruiken zal deze als service (dokkerd) op de host moeten worden geïnstalleerd. Daarna kunnen containers beheerd worden via diverse Docker commando’s. Dit Proces kan worden vereenvoudigd door gebruik te maken van Docker-Compose. Dit is een additionele applicatie die werkt met .yml bestanden. In de bestanden worden de parameters opgenomen die je normaal gesproken op de commandline opgeeft.

Om het beheer van de containers nog makkelijker te maken is Portainer ontwikkeld. Portainer biedt een web interface om Docker containers te beheren, en kan zelf als microservice in een container draaien. Wanneer de basis Docker/docker-compose/portainer draait heb je een goede basis om de Docker omgeving te beheren, containers toe te voegen, weg te halen, te starten en te stoppen. Let er daarbij op dat Docker containers standaard voor het x86 platform gemaakt worden en gebaseerd zijn op Linux. Voor andere processorarchitecturen als ARM voor de Raspberry Pi moet je dus een Docker container kiezen die voor een ARM gebouwd is.

Data persistentie met Docker Volumes

Ah, allemaal leuk en aardig dat alles in een Docker container staat. Maar als je je container herinstalleert of vervangt voor een nieuwe ben je je configuratie en opgeslagen data kwijt. Daar gaat je in een container gehoste website! Maar daar is natuurlijk een oplossing voor gevonden. En daar speelt de Linux/Unix omgeving nu een belangrijke rol. 

Hoe werkt schijfgebruik onder een Unix omgeving? Iedere (partitie op) een harde schijf wordt een in de Unix wereld een volume genoemd. En om een volume te gebruiken in je opslag dien je dit te mounten in je folder structuur. Deze structuur begint bij de wortel (de root, aangegeven met / ). Bij een mount verbindt je een volume aan een mapnaam. Iedere container heeft zijn gescheiden en besloten opslagomgeving (dus zijn eigen / ). Docker staat het toe om een map op de host als een volume te koppelen aan de container. De map op de host en al zijn subdirectories komen dan te staan onder het punt dat je opgeeft. OP die manier kun je dus data ‘in de container’ opslaan en gebruiken die zich buiten de container bevindt en blijft bestaan wanneer de container verwijderd wordt. Door slim mappen te koppelen waar configuratie of data wordt opgeslagen kun je deze dus persistent maken. Welke mappen je koppelt is dan afhankelijk van de service.

Belangrijke Variabelen

Bij de configuratie zijn onder andere de volgende variabelen dan ook belangrijk om mee te geven:

  • Containernaam
  • Dockercontainer en versie
  • ‘Port forwarding’ host:container
  • Volumes:mountpunt

 

Meer informatie is te vinden bij de volgende tutorial handbooks (zeker lezen wanneer je met Docker aan de slag wilt gaan):

Quote
Topic starter Posted : 24/05/2021 10:20 pm
Roebar and Lantern reacted
Lantern
(@lantern)
Illustrious Member Admin

Interessant !

ReplyQuote
Posted : 25/05/2021 12:54 am
Abib
 Abib
(@abib)
Noble Member

En het wordt nog interessanter wanneer je meerdere hosts met Docker in een zogeheten Docker Swarm gaat gebruiken.

ReplyQuote
Topic starter Posted : 25/05/2021 1:03 pm
Lantern
(@lantern)
Illustrious Member Admin
Docker

Omdat Yunohost vast staat in het moeras met een Rasberry Pi5 ben ik gestart met het verdiepen in Docker

Op Youtube heb ik een aantal tutorials gevonden met de basis wat Docker is en wat je er mee kan doen.

Networking is ook wel een belangrijk element en ik vond deze wel heel duidelijk en geeft mij een aardig beeld hoe ik het wil gaan bouwen.

 

ReplyQuote
Posted : 30/05/2024 8:56 pm
Abib reacted
Lantern
(@lantern)
Illustrious Member Admin

In mijn geval is NGINXManager wel een goede kandidaat voor een Reverse Proxy Manager.

Dit is een aardige tutorial 

Best straight forward 👍 

ReplyQuote
Posted : 31/05/2024 10:46 am
Abib
 Abib
(@abib)
Noble Member

@lantern tot je het implementeert 😂

ReplyQuote
Topic starter Posted : 01/06/2024 9:25 am
Abib
 Abib
(@abib)
Noble Member

Die Chuck kan het atijd goed uitleggen. Hij steekt er ook veel tijd in om tot een rond verhaal te komen. Soms stapt hij wel te makkelijk over bepaalde details heen.

ReplyQuote
Topic starter Posted : 01/06/2024 9:27 am
Lantern
(@lantern)
Illustrious Member Admin

Posted by: @abib

@lantern tot je het implementeert 😂

ik geloof in Chuck 🙏 ⛪️ 

 

ReplyQuote
Posted : 01/06/2024 11:13 am
Lantern
(@lantern)
Illustrious Member Admin

Naast Nextcloud en Wortdpress (STA Website) zit ik er over na te denken om een container van Bitwarden te draaien. 

ReplyQuote
Posted : 08/06/2024 9:24 am
Abib
 Abib
(@abib)
Noble Member

@lantern daar zit ik ook al een tijd over na te denken. Dan kan het abonnement op 1password de deur uit.

ReplyQuote
Topic starter Posted : 08/06/2024 9:55 am
Roebar reacted
Roebar
(@roebar)
Famed Member

Dat wil ik ook en om dezelfde reden. Ik heb Bitwarden al wel geinstallleerd op Yunohost maar ik kom er niet veel verder mee.

 

ReplyQuote
Posted : 08/06/2024 10:18 am
Abib
 Abib
(@abib)
Noble Member

subdomein toegewezen aan de app? Wanneer Vaultwarden geīnstalleerd is zou je met de bitwarden client een verbinding moeten kunnen maken met je subdomein. Ik heb er al een keertje mee gespeeld nog op dietpi.

ReplyQuote
Topic starter Posted : 08/06/2024 10:44 am
Lantern
(@lantern)
Illustrious Member Admin

Posted by: @roebar

Dat wil ik ook en om dezelfde reden. Ik heb Bitwarden al wel geinstallleerd op Yunohost maar ik kom er niet veel verder mee.

 

Wat is het probleem of uitdaging ?

 

ReplyQuote
Posted : 09/06/2024 11:36 am