Docker is een set Platforms as a Service (PaaS)-producten die virtualisatie op besturingssysteemniveau gebruiken om software te leveren in pakketten die containers worden genoemd. Containers zijn van elkaar geïsoleerd en bundelen hun eigen software, bibliotheken en configuratiebestanden; ze kunnen met elkaar communiceren via duidelijk gedefinieerde kanalen. Alle containers worden beheerd door één enkele besturingssysteemkernel en gebruiken daarom minder bronnen dan een virtuele machine.
Inhoudsopgave
- Wat is Docker?
- Waarom Docker populair is?
- Wat is een Dockerbestand?
- Wat is Docker-architectuur en hoe Docker werkt?
- Wat is Docker-image?
- Wat is Docker-container?
- Wat is DockerHub?
- Wat is Docker Compose?
- Hoe Docker Desktop downloaden?
- Docker-opdrachten
- Docker-motor
- Waarom Docker gebruiken?
- Wat is Docker voor AWS?
- Verschil tussen Docker-containers en virtuele machines
- Installeer Docker op Ubuntu
- Voorbeeldvoorbeeld: applicatie containeriseren met Docker
- Voorbeeldvoorbeeld om een afbeelding naar Docker Hub te pushen
- Haal de afbeelding op en voer deze uit vanuit Docker Hub
- Voordelen van Docker
- Alternatieven van Docker
- Docker-beveiliging
Wat is Docker?
Dokwerker is een open source containerisatie platform waarmee u uw applicatie en al zijn afhankelijkheden kunt verpakken in een gestandaardiseerde eenheid die een container wordt genoemd. Containers zijn licht van gewicht waardoor ze draagbaar zijn en ze zijn geïsoleerd van de onderliggende infrastructuur en van elkaar. Je kunt de Docker-afbeelding als een havenarbeider container op elke machine waarop docker is geïnstalleerd zonder afhankelijk te zijn van de besturingssysteem.
Waarom Docker populair is?
Docker kreeg zijn populariteit vanwege de impact op de softwareontwikkeling en -implementatie. Hieronder volgen enkele van de belangrijkste redenen waarom Docker populair wordt:
- Draagbaarheid: Docker faciliteert de ontwikkelaars bij het verpakken van hun applicaties met alle afhankelijkheden in één enkele lichtgewicht container. Het zorgt voor consistente prestaties in de verschillende computeromgevingen.
- Reproduceerbaarheid: Door de applicaties en hun afhankelijkheden in een container in te kapselen, zorgt het ervoor dat de software-instellingen consistent blijven in de ontwikkelings-, test- en productieomgevingen.
- Efficiëntie: Docker optimaliseert via zijn op containers gebaseerde architectuur het gebruik van bronnen. Hiermee kunnen de ontwikkelaars meerdere geïsoleerde applicaties op één hostsysteem uitvoeren.
- Schaalbaarheid: Dankzij de schaalbaarheidsfuncties van Docker konden de ontwikkelaars de verwerking van hun applicaties eenvoudiger maken op het moment dat de werklast toenam.
Wat is een Dockerbestand?
De Dockerbestand maakt gebruik van DSL (Domain Specific Language) en bevat instructies voor het genereren van een Docker-image. Dockerfile definieert de processen om snel een afbeelding te produceren. Terwijl u uw applicatie maakt, moet u een Dockerfile maken, aangezien de Docker-daemon voert alle instructies van boven naar beneden uit.
(De Docker-daemon, vaak eenvoudigweg Docker genoemd, is een achtergrondservice die Docker-containers op een systeem beheert.)
- Het is een tekstdocument dat de noodzakelijke opdrachten bevat die bij uitvoering helpen bij het samenstellen van een Docker Image.
- Docker-image wordt gemaakt met behulp van een Dockerfile.

Voor meer informatie over de Dockerfile raadpleegt u de Docker – Concept van Dockerfile .
Wat is Docker-architectuur en hoe Docker werkt?
Docker maakt gebruik van een client-server-architectuur. De Docker-client praat met de docker-daemon die helpt bij het bouwen, uitvoeren en distribueren van de docker-containers. De Docker-client draait met de daemon op hetzelfde systeem of we kunnen de Docker-client op afstand verbinden met de Docker-daemon. Met behulp van REST API via een UNIX-socket of een netwerk communiceren de docker-client en de daemon met elkaar. Voor meer informatie over de werking van docker raadpleegt u de Architectuur van Docker .
Wat is Docker-image?
Het is een bestand dat bestaat uit meerdere lagen en wordt gebruikt om code uit te voeren in een Docker-container. Het zijn een reeks instructies die worden gebruikt om docker-containers te maken. Docker Image is een uitvoerbaar softwarepakket dat alles bevat wat nodig is om een applicatie uit te voeren. Deze afbeelding geeft aan hoe een container moet worden geïnstantieerd, waarbij wordt bepaald welke softwarecomponenten zullen worden uitgevoerd en hoe. Docker Container is een virtuele omgeving die applicatiecode bundelt met alle afhankelijkheden die nodig zijn om de applicatie uit te voeren. De applicatie draait snel en betrouwbaar van de ene computeromgeving naar de andere.
Wat is Docker-container?
Docker-container is een runtime-exemplaar van een afbeelding. Hiermee kunnen ontwikkelaars applicaties verpakken met alle benodigde onderdelen, zoals bibliotheken en andere afhankelijkheden. Docker Containers zijn runtime-instanties van Docker-images. Containers bevatten de volledige kit die nodig is voor een applicatie, zodat de applicatie geïsoleerd kan worden uitgevoerd. Bijvoorbeeld: Stel dat er een afbeelding is van Ubuntu OS met NGINX SERVER wanneer deze afbeelding wordt uitgevoerd met de opdracht docker run, dan wordt er een container gemaakt en draait NGINX SERVER op Ubuntu OS.
Wat is DockerHub?
Docker Hub is een repositoryservice en het is een cloudgebaseerde service waarbij mensen hun Docker Container Images pushen en ook de Docker Container Images altijd en overal via internet uit de Docker Hub halen. Over het algemeen maakt dit het gemakkelijk om afbeeldingen te vinden en opnieuw te gebruiken. Het biedt functies zoals het pushen van uw afbeeldingen als privé- of openbaar register, waar u Docker-afbeeldingen kunt opslaan en delen.
Het DevOps-team maakt voornamelijk gebruik van de Docker Hub. Het is een open-sourcetool en gratis beschikbaar voor alle besturingssystemen. Het is als opslag waarbij we de afbeeldingen opslaan en de afbeeldingen ophalen wanneer dat nodig is. Wanneer iemand afbeeldingen uit de Docker Hub wil pushen/halen, moet hij of zij over basiskennis van Docker beschikken. Laten we de vereisten van de Docker-tool bespreken.
Wat is Docker Compose?
Docker Compose zal een op YAML gebaseerde applicatie met meerdere containers uitvoeren. Het YAML-bestand bestaat uit alle configuraties die nodig zijn om containers te implementeren Docker Componeren , die is geïntegreerd met Dokwerkerszwerm , en geeft aanwijzingen voor het bouwen en inzetten van containers. Met Docker Compose is elke container zo gebouwd dat hij op één enkele host kan draaien.
Hoe Docker Desktop downloaden?
Docker Desktop biedt GUI om te werken aan docker-containers, docker-images en docker-netwerken. Docker-desktop biedt een aparte omgeving die Docker Engine, Docker CLI, Docker Compose, Kubernetes, en andere tools die nodig zijn om de applicaties te bouwen, verzenden en uitvoeren in de vorm van containers, waardoor het gebruiksvriendelijker wordt. Raadpleeg voor meer informatie over het installeren van Docker Desktop Docker Desktop-voorbeeldafbeelding.
Docker-opdrachten
Door de introductie van de essentiële docker-opdrachten werd docker een krachtige software voor het stroomlijnen van het containerbeheerproces. Het helpt bij het garanderen van naadloze ontwikkelings- en implementatieworkflows. Hieronder volgen enkele docker-opdrachten die vaak worden gebruikt:
- Docker-run: Het werd gebruikt voor het starten van de containers vanuit afbeeldingen, met het specificeren van de runtime-opties en -opdrachten.
- Docker-trekkracht: Het haalt de containerimages op van het containerregister, zoals Docker Hub, naar de lokale machine.
- Docker ps : Het helpt bij het weergeven van de actieve containers samen met hun belangrijke informatie zoals container-ID, gebruikte afbeelding en status.
- Docker-stop : Het helpt bij het stoppen van de actieve containers en het op een elegante manier afsluiten van de processen daarin.
- Docker-start: Het helpt bij het opnieuw opstarten van de gestopte containers en hervat hun activiteiten vanuit de vorige staat.
- Docker-login: Het helpt om in te loggen op het docker-register, waardoor toegang tot privérepository's mogelijk wordt.
Voor meer informatie over de docker-opdrachten raadpleegt u de Docker – Instructieopdrachten .
Docker-motor
De software die de containers host heet Docker Engine. Docker Engine is een client-server-gebaseerde applicatie. De docker-engine heeft 3 hoofdcomponenten:
- Server: Het is verantwoordelijk voor het maken en beheren van Docker-images, containers, netwerken en volumes op de Docker. Het wordt een daemon-proces genoemd.
- REST-API : Het specificeert hoe de applicaties kunnen communiceren met de server en instrueert wat te doen.
- Cliënt: De Client is een docker-opdrachtregelinterface (CLI), waarmee we met Docker kunnen communiceren met behulp van de docker-opdrachten.
Waarom Docker gebruiken?
Docker kan worden gebruikt om de applicatie en de afhankelijkheden ervan in te pakken, waardoor het lichtgewicht en gemakkelijk is om de code sneller en betrouwbaarder te verzenden. Docker maakt het heel eenvoudig om de applicatie in de productieomgeving uit te voeren. Docker container kan platformonafhankelijk zijn als de docker-engine in de machine is geïnstalleerd.
- Efficiënt gebruik van hulpbronnen : Docker helpt bij het maximaliseren van het gebruik van bronnen door meerdere containers op één host te laten draaien. Het helpt bij het verlagen van de infrastructuurkosten en verbetert de efficiëntie.
- Versiebeheer: Het vereenvoudigt het versiebeheer van de applicaties en hun afhankelijkheden, waardoor de consistentie wordt gewaarborgd en de samenwerking tussen de teams wordt vergemakkelijkt.
- Wendbaarheid van microservices: Het maakt de adoptie van microservices-architectuur mogelijk en bevordert de schaalbaarheid, flexibiliteit en foutisolatie van agile applicatie-ontwikkeling.
Wat is Docker voor AWS?
Docker is de krachtigste tool om de applicatie in de vorm van containers uit te voeren. Docker-containers zijn licht van gewicht en kunnen op elk besturingssysteem worden uitgevoerd.
AWS biedt de Amazon Elastic Container Service ( Amazon ECS ) het is een volledig beheerde containerservice waarmee u de docker-containers kunt inzetten, schalen en beheren. Amazon ECS is het meest betrouwbare platform op basis van de prestaties en kan ook worden geïntegreerd met de andere AWS-services, zoals taakverdeling, servicedetectie en monitoring van de containerstatus. Om meer over te weten Amazon Elastic Container Service (Amazon ECS) .
Verschil tussen Docker-containers en virtuele machines
Hieronder volgen de verschillen tussen dockercontainers en virtuele machines:
Docker-containers | Virtuele machines |
---|---|
Docker Containers bevatten binaire bestanden, bibliotheken en configuratiebestanden, samen met de applicatie zelf. | Virtuele machines (VM's) draaien op hypervisors, waardoor meerdere virtuele machines op één machine kunnen draaien, samen met een eigen besturingssysteem. |
Ze bevatten geen gastbesturingssysteem voor elke container en vertrouwen op de onderliggende besturingssysteemkernel, waardoor de containers licht van gewicht zijn. | Elke VM heeft zijn eigen kopie van een besturingssysteem, samen met de applicatie en de benodigde binaire bestanden, waardoor deze aanzienlijk groter wordt en er meer bronnen nodig zijn. |
Containers delen bronnen met andere containers in hetzelfde host-besturingssysteem en bieden procesisolatie op besturingssysteemniveau. | Ze bieden procesisolatie op hardwareniveau en starten langzaam op. |
Installeer Docker op Ubuntu
De volgende stappen begeleiden u bij de installatie van docker op ubuntu:
Stap 1: Verwijder de oude versie van Docker
- Voer de volgende opdracht uit om de oude docker-software met versienummer te verwijderen:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Stap 2: Docker-engine installeren
- De volgende opdracht wordt gebruikt voor de installatie van de docker-engine:
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>
Stap 3: Controleer de Docker-installatie
- Controleer of docker succesvol op uw systeem is geïnstalleerd door te proberen een container uit te voeren met de volgende opdracht:
$ sudo docker run hello-world>
Raadpleeg dit voor meer informatie over de installatie van docker op ubuntu - Artikel
Voorbeeldvoorbeeld: applicatie containeriseren met Docker
De volgende stappen begeleiden bij het containeriseren van de applicatie met behulp van Docker:
Stap 1: Maak een Dokcerfile- en Python-applicatie
- Maak een map met twee bestanden (Dockerfile en main.py-bestand) erin
Stap 2: Ontwikkel Python-code
- Bewerk main.py met de onderstaande code, of probeer uw eigen Python-code te ontwikkelen.
#!/usr/bin/env python3 print('Docker and GFG rock!')>
Stap 3: Ontwikkel een Dockerbestand
- Bewerk Dockerfile met de onderstaande instructies voor het ontwikkelen van de Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Stap 4: Maak een Docker-image
- Nadat u het main.py-bestand en het Dockerfile hebt gemaakt en bewerkt, maakt u uw afbeelding met uw toepassing door de volgende opdracht uit te voeren:
$ sudo docker build -t python-test .>
- Met de ‘-t’ optie kunt u de naam van uw afbeelding definiëren. ‘python-test’ is de naam die we voor de afbeelding hebben gekozen.
Stap 5: Voer Docker Container uit
- Zodra de afbeelding is gemaakt, is uw code klaar om te starten.
$ sudo docker run python-test>
Voor meer informatie over deze containerisatie van uw applicatie, raadpleegt u dit: Artikel
Voorbeeldvoorbeeld om een afbeelding naar Docker Hub te pushen
De volgende stappen begeleiden bij het pushen van een image naar de Dockerhub:
Stap 1: Maak een account aan op Docker Hub of gebruik een bestaand account als u er al een heeft.
Stap 2: Klik op de knop Create Repository, voer de naam van het bestand in en klik op Create.
Stap 3: We zullen nu onze afbeelding taggen en deze naar de Docker Hub-repository pushen die we zojuist hebben gemaakt.
- Voer nu de onderstaande opdracht uit om docker-images weer te geven:
$ docker images>
- Het bovenstaande zal ons dit resultaat opleveren
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- Afbeeldings-ID wordt gebruikt om de afbeelding te taggen. De syntaxis om de afbeelding te taggen is:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Stap 4: Push de afbeelding naar de Docker Hub-repository
$ docker push afrozchakure/python-test>
Voor meer informatie over het publiceren van de afbeeldingen naar dockerhub, raadpleegt u dit: Artikel
Haal de afbeelding op en voer deze uit vanuit Docker Hub
1. Om alle versies van een bepaalde afbeelding van ons lokale systeem te verwijderen, gebruiken we de Image ID ervoor.
$ docker rmi -f af939ee31fdc>
2. Voer nu de afbeelding uit, deze haalt de afbeelding op van de docker-hub als deze niet op uw lokale computer bestaat.
$ docker run afrozchakure/python-test>
Voordelen van Docker
Hier volgen enkele voordelen van Docker:
- Draagbaarheid: Docker-faciliteiten met het creëren van lichtgewicht draagbare containers die op geen enkele machine kunnen werken, ongeacht de onderliggende besturingssystemen.
- Isolatie: Docker via containers biedt een hoog niveau van isolatie, waardoor de applicaties onafhankelijk van elkaar kunnen draaien en de problemen worden aangepakt waar de ene container geen invloed op de andere heeft.
- Reproduceerbaarheid: Hiermee kunnen Docker-ontwikkelaars hun applicaties en hun afhankelijkheden eenvoudig verpakken in herbruikbare images. Het maakt consistente en reproduceerbare builds mogelijk in de ontwikkelings-, test- en productieomgevingen.
- DevOps-integratie : Het bevordert de samenwerking en automatisering gedurende de gehele levenscyclus van softwareontwikkeling bij het omgaan met de toenemende werkdruk.
Alternatieven van Docker
Dit zijn de alternatieven van Docker:
- Ingetogen : Biedt een Docker-compatibele container-engine met de nadruk op beveiliging en compatibiliteit, ideaal voor omgevingen waar Docker niet de voorkeur heeft of niet beschikbaar is.
- rkt: Een lichtgewicht containerruntime ontwikkeld door CoreOS, ontworpen voor eenvoud, veiligheid en composabiliteit, en biedt een alternatief voor de containerruntime van Docker.
- LXC (Linux-containers): Biedt virtualisatie op besturingssysteemniveau voor het uitvoeren van meerdere geïsoleerde Linux-systemen (containers) op één host, en biedt voor bepaalde gebruikssituaties een lichtgewicht alternatief voor Docker.
- gecontaineriseerd: Een industriestandaard kerncontainerruntime ontwikkeld door Docker, Inc., die een minimaal en stabiel platform biedt voor het bouwen van containerapplicaties, vaak gebruikt als alternatief op een lager niveau voor Docker voor meer geavanceerde containerorkestratiesystemen zoals Kubernetes.
Docker-beveiliging
Hieronder volgen enkele inzichten over docker-beveiliging:
- Isolatie : Docker-containers bieden de sterke isolatie die ervoor zorgt dat de applicaties en de verwerking ervan worden uitgevoerd.
- Onveranderlijke infrastructuur : Het bevordert het gebruik van onveranderlijke infrastructuur, waarbij containers worden gebouwd op basis van onveranderlijke afbeeldingen die versiebeheerd zijn.
- Beperkte middelen: Hiermee kunt u de resourcebeperkingen voor containers definiëren, zoals CPU- en geheugenlimieten.
- Beveiligingsscannen: Het biedt de ingebouwde tools voor beveiligingsscans waarmee u de containerimages kunt scannen op bekende kwetsbaarheden en malware voordat u deze implementeert.
Conclusie
Je hebt dus kennis gemaakt met de basisprincipes van Docker, het verschil tussen virtuele machines en Docker-containers en enkele algemene terminologieën in Docker. Ook hebben we de installatie van Docker op onze systemen doorlopen. We hebben een applicatie gemaakt met Docker en onze image naar Docker Hub gepusht. Ten slotte hebben we geleerd hoe we een bepaalde afbeelding van ons lokale systeem kunnen verwijderen en de afbeelding later uit Docker Hub kunnen halen als deze niet lokaal bestaat.
Docker – Veelgestelde vragen
Wat is Docker Hub in het kort?
Docker Hub is een openbaar register waar gebruikers/ontwikkelaars door hen gemaakte systeemimages kunnen opslaan en delen, zodat ze gemakkelijk toegang kunnen krijgen tot images en deze kunnen hergebruiken voor andere softwareontwikkelaars.
sorteer een array in Java
Wat is nodig om Docker Hub te gebruiken?
Om Docker Hub te gebruiken moet de gebruiker een account hebben op het Docker Hub-platform. Als u geen account op Docker Hub heeft, kunt u er een aanmaken door u aan te melden. Zodra u een account bij Docker heeft, kunt u bewerkingen uitvoeren zoals push- en pull-images van en naar Docker Hub.
Wat zijn Docker-logboeken?
Docker-daemon en Docker-containers genereren de docker-logboeken in de vorm van sms-berichten, die u helpen bij het verder oplossen van problemen, het bewaken van de prestaties van uw applicaties en het verzamelen van informatie over de status van uw Docker-omgeving.
Wat is Docker Build?
Docker build is een opdracht die wordt gebruikt om de docker-image te bouwen met behulp van het Dockerfile.
Wat is Docker Ubuntu?
Docker Ubuntu is de term die wordt gebruikt voor het gebruik van de Docker-service met op Ubuntu gebaseerde besturingssystemen. Het uitvoeren van Docker is het meest geschikt voor de populaire Linux-distributie Ubuntu.