Docker-zelfstudie voor beginners: basisprincipes, Archistructuur, containers
⚡ Slimme samenvatting
Docker is een containerisatieplatform dat applicaties en hun afhankelijkheden verpakt in draagbare, lichtgewicht containers. Dit overzicht beschrijft de architectuur van Docker en de installatie ervan. UbuntuEssentiële commando's en hoe containers verschillen van traditionele virtuele machines voor snellere softwarelevering.
Docker is een van de populairste containerisatieplatformen die in de moderne tijd worden gebruikt. DevOps en cloudworkflows. Deze Docker-handleiding voor beginners legt uit wat Docker is, hoe de Docker-architectuur werkt en hoe je Docker installeert. Ubuntuen de basiscommando's die worden gebruikt om afbeeldingen en containers te beheren.
Wat is Docker?
havenarbeider Docker is een softwareontwikkelingsplatform voor virtualisatie waarmee meerdere besturingssystemen op dezelfde host kunnen draaien. Het helpt je om infrastructuur en applicaties van elkaar te scheiden, zodat je snel software kunt leveren. In tegenstelling tot hypervisors, die worden gebruikt om virtuele machines (VM's) te creëren, voert Docker virtualisatie uit op systeemniveau met behulp van zogenaamde Docker-containers.
Docker-containers draaien bovenop het hostbesturingssysteem, zoals te zien is in de onderstaande afbeelding. Dit verbetert zowel de efficiëntie als de beveiliging. Je kunt ook meer containers dan virtuele machines op dezelfde infrastructuur draaien, omdat containers minder resources verbruiken.

In tegenstelling tot virtuele machines, die rechtstreeks met de hosthardware kunnen communiceren (bijvoorbeeld een Ethernet-adapter die meer virtuele adapters creëert), draaien Docker-containers in een geïsoleerde omgeving bovenop het hostbesturingssysteem. Zelfs als uw host draait... Windows, je kan lopen Linux afbeeldingen in containers met behulp van Hyper-V, wat automatisch een kleine VM creëert om de basisimage te virtualiseren.
Nu je weet wat Docker is, laten we eens kijken naar de belangrijkste redenen waarom teams ervoor kiezen.
Waarom Docker gebruiken?
Dit zijn de belangrijkste redenen om Docker te gebruiken:
- Docker is software die wordt gebruikt voor virtualisatie, waardoor meerdere apparaten tegelijk kunnen worden gebruikt. besturingssystemen om op dezelfde host te draaien.
- Docker is een client-serverapplicatie, wat betekent dat clients met een server communiceren.
- Docker-images fungeren als de "broncode" voor containers; je gebruikt ze om te bouwen.
- Docker ondersteunt twee soorten registers: openbaar en privé.
- Containers zijn de organisatorische eenheden van Docker. Simpel gezegd is een image een sjabloon en een container een kopie van dat sjabloon, waardoor je meerdere containers kunt uitvoeren vanuit dezelfde image.
Deze voordelen vloeien voort uit de manier waarop Docker is ontworpen. In het volgende gedeelte wordt de Docker-architectuur en de belangrijkste componenten ervan nader toegelicht.
havenarbeider Architectuur
In deze handleiding over Docker-containers bekijken we nu de belangrijkste componenten van de Docker-architectuur.
Docker Engine
Docker is een client-serverapplicatie, wat betekent dat we clients hebben die verzoeken doorsturen naar een server. De Docker-daemon, genaamd dockerd, is de Docker-engine die de server vertegenwoordigt. De daemon en de clients kunnen op dezelfde of een externe host draaien en communiceren via een commandoregelclientprogramma en een volledige applicatie. RESTful API dat samenwerkt met dockerd.
Docker-afbeeldingen
Docker-images zijn de "broncode" voor onze containers; we gebruiken ze om containers te bouwen. Images kunnen vooraf geïnstalleerde software bevatten, wat de implementatie versnelt. Ze zijn draagbaar en je kunt bestaande images gebruiken of je eigen images bouwen.
Docker-registers
Docker slaat de door ons gebouwde images op in registries. Er zijn openbare en privéregistries. Docker heeft een openbare registry genaamd Docker-hubWaar je afbeeldingen ook privé kunt opslaan. Docker Hub heeft miljoenen afbeeldingen die je direct kunt gebruiken.
Docker-containers
Containers zijn de organisatorische eenheden van Docker en een van de basisconcepten ervan. Wanneer we een image bouwen en uitvoeren, draaien we deze binnen een container. De analogie met een container wordt gebruikt vanwege de draagbaarheid van de software die erin draait: je kunt de software verplaatsen, 'verzenden', wijzigen, beheren, creëren of vernietigen, net zoals vrachtschepen echte containers vervoeren.
Simpel gezegd is een afbeelding een sjabloon en een container een kopie van die sjabloon. U kunt meerdere containers (kopieën) van dezelfde afbeelding hebben.
De interactie tussen deze verschillende componenten laat zien hoe Docker-containertechnologie werkt. Commando's zoals `docker pull` en `docker run`, die we later bespreken, stellen je in staat deze workflow te beheren.
Met de architectuur in gedachten, gaan we Docker installeren zodat je deze componenten zelf kunt uitproberen.
Hoe Docker op Linux te installeren/Ubuntu
Hieronder volgt een stapsgewijze handleiding voor het installeren van Docker op Linux.Ubuntu:
Stap 1) Om Docker te installeren, heb je de DEB-pakketten van het Docker-team nodig. Eerst een aantal vereisten. Ubuntu Pakketten zijn vereist. Gebruik de onderstaande opdracht om ze te installeren.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*het teken “\” is niet nodig, het wordt gebruikt voor de nieuwe regel. Als u wilt, kunt u de opdracht schrijven zonder “\” in slechts één regel te gebruiken.
Stap 2) Voeg de officiële Docker GPG-sleutel met vingerafdruk toe. Gebruik de onderstaande Docker-opdracht om de GPG-sleutel in te voeren.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Stap 3) Voeg vervolgens de Docker APT-repository toe met behulp van de onderstaande opdracht.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Mogelijk wordt u gevraagd te bevestigen dat u de repository wilt toevoegen en dat de GPG-sleutel automatisch aan uw host moet worden toegevoegd. De opdracht lsb_release zou de gegevens moeten invullen. Ubuntu distributieversie van uw host.
Stap 4) Nadat je de GPG-sleutel hebt toegevoegd, werk je de APT-bronnen bij met behulp van de onderstaande Docker-opdracht.
$ sudo apt-get update
Je kunt nu het Docker-pakket zelf installeren.
Stap 5) Zodra de APT-bronnen zijn bijgewerkt, kunt u beginnen met het installeren van de Docker-pakketten. Ubuntu Gebruik hiervoor het onderstaande Docker-commando.
$ sudo apt-get install docker-ce
Met het bovenstaande commando worden Docker en andere benodigde pakketten geïnstalleerd. Vóór Docker 1.8.0 was de pakketnaam lxc-docker, en tussen Docker 1.8 en 1.13 was de pakketnaam docker-engine.
NOTITIE: Docker voor Windows vereist Windows 10 Pro- of Enterprise-versie 14393, of Windows Server 2016 RTM, om uit te voeren.
Hoe Docker te gebruiken met behulp van standaard Docker-opdrachten
Hieronder leggen we uit hoe je Docker kunt gebruiken met een paar basis Docker-commando's.
Het meest basale commando dat je na de installatie van Docker moet uitvoeren, is `docker info`, zoals eerder vermeld.
$ sudo docker info
Je zou een resultaat moeten krijgen dat lijkt op het volgende.
Zoals in het bovenstaande Docker-voorbeeld te zien is, kunnen we informatie over Docker-containers bekijken: hoeveel er draaien, gepauzeerd of gestopt zijn, en hoeveel images er gedownload zijn. Laten we nu onze eerste image downloaden.
$ sudo docker pull alpine
Met dit commando vertellen we Docker om de Alpine-image te downloaden, die standaard de nieuwste versie uit het openbare register haalt.
*alpine is een minimale Docker-image gebaseerd op Alpine Linux met een volledige pakketindex en slechts 5 MB groot.
Als we de image als container willen uitvoeren, gebruiken we het volgende commando.
$ sudo docker run -i -t alpine /bin/bash
Door het commando uit te voeren, komen we direct in de Alpine-terminal terecht. De vlag -i zorgt ervoor dat STDIN vanuit de container open blijft, zelfs als je er niet aan gekoppeld bent; deze permanente standaardinvoer is de helft van wat je nodig hebt voor een interactieve shell. De vlag -t is de andere helft en instrueert Docker om een pseudo-tty aan de container toe te wijzen. Samen geven ze ons een interactieve shell in de nieuwe container. We verlaten de container met een eenvoudig exit-commando.
In deze tutorial over de basisprincipes van Docker kunnen we nu proberen een applicatie uit te voeren. Ubuntu afbeelding.
$ sudo docker run -it ubuntu /bin/bash
Merk op dat Docker lokaal controleert of de image aanwezig is, en zo niet, dan wordt de image automatisch uit de imagebibliotheek gehaald. We hebben wederom een interactieve shell die draait. We kunnen containers ook een naam geven terwijl we ze uitvoeren.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Vervolgens verlaten we het systeem weer. We kunnen ook een eerder aangemaakte container uitvoeren zonder interactieve shell.
$ sudo docker start container_name
En we stoppen de container door `docker stop container_name` te typen.
$ sudo docker stop container_name
Als we alle actieve containers willen zien, hoeven we alleen maar het volgende commando uit te voeren.
$ docker ps
Voor alle containers voegen we "-a" toe aan het einde van hetzelfde commando, bijvoorbeeld `docker ps -a`. Dit commando toont de container-ID, de gebruikte image, de aanmaakdatum, de status, de geopende poorten en een willekeurig gegenereerde naam voor eenvoudiger beheer.
Wanneer we containers uitvoeren, willen we vaak weten hoeveel resources ze gebruiken. Daarvoor kunnen we de volgende opdracht gebruiken.
$ docker stats
Je kunt ook zien welke afbeeldingen je lokaal hebt gedownload, samen met informatie erover.
$ sudo docker images
De opdracht in het bovenstaande Docker-voorbeeld toont elke Docker-image met een tag die de imageversie, een unieke image-ID, de aanmaakdatum en de imagegrootte weergeeft.
Om te begrijpen waarom containers zo'n grote verbetering zijn, is het nuttig om te kijken naar de evolutie van virtualisatie.
Wat is virtualisatie?
Voorheen was het implementeren van een service een traag en moeizaam proces. Ontwikkelaars schreven code, waarna het operationele team deze implementeerde op fysieke machines. Daar moesten ze de bibliotheekversies, patches en compilers in de gaten houden om ervoor te zorgen dat de code werkte. Als er bugs of fouten waren, begon het hele proces opnieuw: de ontwikkelaars losten het probleem op en het operationele team implementeerde de service opnieuw.
De situatie verbeterde met de komst van hypervisors. Hypervisors voeren meerdere processen tegelijk uit. virtuele machines, of VM's, op dezelfde host, die al dan niet actief kunnen zijn. VM's verkortten de wachttijd voor het implementeren van code en het oplossen van bugs aanzienlijk, maar de echte gamechanger waren Docker-containers.
De populariteit van Docker wordt mede gedreven door orchestratietools die containers op grote schaal beheren, zoals KubernetesVoordat we verdergaan, volgt hier een kort overzicht van de belangrijkste Docker-commando's.
Belangrijke Docker-opdrachten
Hieronder staan de belangrijke Docker-opdrachten:
| commando | Beschrijving |
|---|---|
| havenarbeider info | Informatie Commando |
| havenarbeider | Een afbeelding downloaden |
| docker run -i -t afbeeldingsnaam /bin/bash | Voer de afbeelding uit als een container |
| docker start onze_container | Begin container |
| docker stop containernaam | Houd container tegen |
| koppelaar ps | Lijst van alle actieve containers |
| docker-statistieken | Containerinformatie |
| docker-afbeeldingen | Lijst met gedownloade afbeeldingen |
| Docker-opruiming | Dood alle lopende containers. |
Lees ook deze artikelen. Docker sollicitatiegesprek vragen en antwoorden Voor zowel starters als ervaren professionals.


