Docker (containerisatie)

Net als transportbedrijven fysieke containers gebruiken om verschillende soorten lading van elkaar te scheiden zo passen ook technologieën voor softwareontwikkeling steeds meer een methode toe waarbij containers worden gebruikt.
Een standaardpakket van software, een zogeheten container, bundelt de code van een toepassing samen met de bijbehorende configuratie- bestanden, bibliotheken en afhankelijkheden die nodig zijn om de toepassing (app) uit te voeren. Op die manier kunnen ontwikkelaars en IT-professionals toepassingen naadloos in verschillende omgevingen implementeren.

Docker heeft moderne softwareontwikkeling veranderd door het ontwikkelaars makkelijker te maken. Door het host-besturingssysteem af te zonderen, kunnen ontwikkelaars hun echte werk sneller en efficiënter dan ooit uitvoeren. Zo kunnen ontwikkelaars zich richten op het implementeren en efficiënt uitvoeren van hun applicaties. Van het verpakken van applicaties in een enkele container tot het behouden van consistentie in verschillende omgevingen, Docker is het antwoord voor diegenen die op zoek zijn naar efficiënte, consistente en eenvoudig te implementeren applicaties.

Omdat de software zich in een container bevindt, heeft deze geen toegang tot gegevens die de Docker-runtime (= omgeving waarin het programma wordt uitgevoerd) niet aan de software verstrekt. Elke container is volledig geïsoleerd van andere containers. De toepassing in een container ziet dus niet de toepassingen in andere containers. En door één container te installeren en bij te werken, ben je zeker dat die nieuwe versie niet in conflict komt met toepassingen in andere containers. Dit kan helpen bij de beveiliging en het beheer van bronnen.

Met Docker kun je software moeiteloos op apparaten implementeren, omdat alles zich in de container bevindt die de zgn. runner (degene die taken uitvoert) downloadt. Die toepassingen vind je in de vorm van een image op de Docker Hub. Zo’n image is in feite een sjabloon voor een minimaal systeem, dat je bovenop Raspberry Pi OS kunt draaien in de vorm van een container.

Als je meer dan een handvol toepassingen op je Raspberry Pi wilt draaien, helpt Docker je dus om dat op een betrouwbare manier te doen. Dankzij Docker kun je ook gerust experimenteren met nieuwe software: bevalt die je niet (meer), dan verwijder je gewoon de container.

Het beste van alles is dat Docker dit allemaal doet met een zeer lage overhead. Hierdoor kan de software op een machine met beperkte resources draaien, zoals de Raspberry Pi.

Hieronder leg ik uit hoe je Docker op een Raspberry Pi installeert en hoe je kunt testen of het programma correct werkt.

Docker voor de Raspberry Pi ondersteunt de meeste versies van het Raspberry Pi OS.

Daar gaan we…

Docker installeren

Dankzij een handig installatiescript dat door het Docker-team ontwikkeld is, is het installeren van de containersoftware erg eenvoudig. Je kunt de volgende stappen uitvoeren door een SSH-verbinding te gebruiken .

Raspberry Pi OS updaten

Om de Docker Engine te installeren wordt geadviseerd de 32-bits versie van Raspberry Pi OS (Bookworm/Bullseye) te gebruiken. Allereerst werken we de pakketten van het Raspberry Pi OS bij voordat we starten met de installatie van Docker. Dit doen we door de volgende twee opdrachten in de terminal uit te voeren.

sudo apt update

sudo apt upgrade

Docker Engine installeren

Nu de Raspberry Pi helemaal up-to-date is, kunnen we Docker op de Raspberry Pi installeren. Gelukkig heeft Docker dit proces heel snel en eenvoudig gemaakt door een bash-script te leveren dat alles voor je installeert.


Oude versies verwijderen
Voordat je Docker Engine kunt installeren, moet je alle conflicterende pakketten verwijderen. De Linux-distributie kan onofficiële Docker-pakketten leveren, die mogelijk conflicteren met de officiële pakketten die door Docker worden geleverd. Daarom moeten deze pakketten verwijderd worden voordat je de officiële versie van Docker Engine installeert.

Voer de volgende opdracht uit om alle conflicterende pakketten te verwijderen:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

Note van HanD (admin): Ik heb geen oude versies verwijderd en heb er geen hinder van ondervonden om deze tutorial tot een goed en werkend einde te brengen.


Je kunt het officiële Docker-installatiescript downloaden en uitvoeren door de volgende opdracht uit te voeren.

curl -sSL https://get.docker.com | sh

Als de installatie afgerond is, verschijnt de volgende info waarmee aangegeven wordt dat de installatie geslaagd is.

Als het goed is, kunnen we nu een image installeren, dit doen we door de ‘hello-world' image uit te voeren:

sudo docker run hello-world

In plaats van bovenstaande commando in te geven, kan dit ook met het volgende commando:

sudo docker run --rm hello-world

Door de optie —rm wordt de (test)container na het afsluiten van het programma opgeruimd.

Je hebt de Docker Engine nu succesvol geïnstalleerd en gestart.

Wanneer de container wordt uitgevoerd, wordt er een bevestigingsbericht afgedrukt en wordt de container afgesloten.

Ubuntu container

Zoals het scherm hierboven al aangeeft kun je nu een Ubuntu container aanmaken met:

sudo docker run -it ubuntu bash

Je zit nu in de Ubuntu terminal. Geef ‘exit‘ om terug in de terminal van de Pi te komen.

Containeroverzicht

Het volgende commando toont alle containers, ongeacht of ze draaien, opnieuw opstarten, gepauzeerd of gestopt zijn.

sudo docker ps -a

Zoals je ziet heb ik ‘hello-world’ al eerder geprobeerd.

Portainer (Aanrader!)

Vanaf dit punt kun je Portainer installeren. Portainer is software om Docker middels een GUI te beheren. Eenmaal gebruikt en je wilt nooit meer anders!


Mocht je ondersteuning voor Docker nodig hebben, kijk dan in de speciale Raspberry Pi documentatie van Docker.

Conclusie

Ofschoon we niet op de theorie van Docker zijn ingegaan, heb je kunnen zien hoe eenvoudig Docker te installeren is. Je kunt Docker veilig gebruiken voor je project, bijvoorbeeld voor het opzetten van een Docker-zwerm met je Raspberry Pi. Een Docker-container is een mooie en veilige manier om snel software op je apparaat te implementeren. Snuffel eens op de Docker-website. Je vindt er interessante onderwerpen.

Have A Nice Day!

Geef als eerste een reactie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd.


*