Docker-zelfstudie - Inleiding tot Docker en containerisatie



In deze Docker-zelfstudie begrijpt u de noodzaak achter Docker en krijgt u een inleiding tot Docker. Het is de eerste blog in de Docker-tutorialserie

Ik hoop dat je de reeks eerdere DevOps Tutorial-blogs niet hebt gemist. Ga door de hier.De onhoudbare trend van Docker-containers groeit en organisaties zijn op zoek naar professionals die het bezit .Deze keer nemen we u mee door een inleiding tot Docker.

Docker-zelfstudie

Deze Docker Tutorial-blog geeft je de conceptuele en praktische kennis van Docker - A new age containerization-technologie.





In deze blog zullen we ons concentreren op de onderstaande onderwerpen:

php mysql_fetch_array
  • Wat is virtualisatie?
  • Wat is containerisatie
  • Voordelen van containerisatie ten opzichte van virtualisatie
  • Inleiding tot Docker
  • Voordelen van Docker
  • Virtualisatie versus containerisatie
  • Docker-installatie
  • Dockerfile, Docker Image & Docker Container
  • Wat is Docker Hub?
  • Docker-architectuur
  • Docker Compose

Docker wint aan populariteit en het gebruik ervan verspreidt zich als een lopend vuurtje. De reden voor de groeiende populariteit van Docker is de mate waarin het kan worden gebruikt in een IT-organisatie. Er zijn maar weinig tools die de functionaliteit hebben om zichzelf nuttig te vinden voor zowel ontwikkelaars als systeembeheerders. Docker is zo'n tool die echt zijn belofte waarmaakt Bouwen , Schip en Rennen .



In eenvoudige bewoordingen is Docker een softwarecontainerisatieplatform, wat betekent dat u uw applicatie kunt bouwen, deze samen met hun afhankelijkheden in een container kunt verpakken en deze containers vervolgens eenvoudig kunnen worden verzonden om op andere machines te worden uitgevoerd.

Bijvoorbeeld: Laten we eens kijken naar een op Linux gebaseerde applicatie die zowel in Ruby als Python is geschreven. Deze applicatie vereist een specifieke versie van linux, Ruby en Python. Om versieconflicten aan de kant van de gebruiker te voorkomen, kan een linux docker-container worden gemaakt met de vereiste versies van Ruby en Python geïnstalleerd samen met de applicatie. Nu kunnen de eindgebruikers de applicatie eenvoudig gebruiken door deze container uit te voeren zonder zich zorgen te hoeven maken over de afhankelijkheden of versieconflicten.

Deze containers maken gebruik van Containerization die kan worden beschouwd als een geëvolueerde versie van virtualisatie. Dezelfde taak kan ook worden bereikt met virtuele machines, maar het is niet erg efficiënt.



Ik krijg op dit punt meestal een vraag, d.w.z. wat is het verschil tussen virtualisatie en containerisatie? Deze twee termen lijken erg op elkaar. Dus laat me je eerst vertellen wat virtualisatie is?

Wat is virtualisatie?

Virtualisatie is de techniek waarbij een Guest-besturingssysteem bovenop een Host-besturingssysteem wordt geïmporteerd. Deze techniek was in het begin een openbaring omdat het ontwikkelaars in staat stelde meerdere besturingssystemen te draaien op verschillende virtuele machines die allemaal op dezelfde host draaiden. Hierdoor was er geen extra hardwarebron nodig. De voordelen van virtuele machines of virtualisatie zijn:

  • Meerdere besturingssystemen kunnen op dezelfde machine worden uitgevoerd
  • Onderhoud en herstel waren eenvoudig in geval van storing
  • De totale eigendomskosten waren ook lager door de verminderde behoefte aan infrastructuur

Virtual Machine Architecture - Docker-zelfstudie over introductie tot Docker - Edureka

In het diagram aan de rechterkant kun je zien dat er een hostbesturingssysteem is waarop 3 gastbesturingssystemen draaien, wat niets anders is dan de virtuele machines.

Zoals u weet is niets perfect, maar virtualisatie heeft ook enkele tekortkomingen. Het draaien van meerdere virtuele machines in hetzelfde hostbesturingssysteem leidt tot prestatieverlies. Dit komt doordat het gast-besturingssysteem bovenop het host-besturingssysteem draait, dat zijn eigen kernel en set bibliotheken en afhankelijkheden zal hebben. Dit neemt een groot deel van de systeembronnen in beslag, d.w.z. harde schijf, processor en vooral RAM.

Een ander probleem met virtuele machines die virtualisatie gebruiken, is dat het bijna een minuut duurt om op te starten.Dit is erg kritiek in het geval van real-time applicaties.

Hieronder volgen de nadelen van virtualisatie:

  • Het draaien van meerdere virtuele machines leidt tot onstabiele prestaties
  • Hypervisors zijn niet zo efficiënt als het hostbesturingssysteem
  • Het opstartproces is lang en kost tijd

Deze nadelen leidden tot de opkomst van een nieuwe techniek genaamd Containerization. Laat me je nu vertellen over Containerization.

Wat is containerisatie?

Containerisatie is de techniek om virtualisatie naar het niveau van het besturingssysteem te brengen. Terwijl virtualisatie abstractie in de hardware brengt, brengt containerisatie abstractie in het besturingssysteem. Houd er rekening mee dat containerisatie ook een soort virtualisatie is. Containerisatie is echter efficiënter omdat er hier geen gast-besturingssysteem is en het besturingssysteem van een host gebruikt, relevante bibliotheken en bronnen deelt wanneer en wanneer dat nodig is, in tegenstelling tot virtuele machines. Applicatiespecifieke binaire bestanden en bibliotheken van containers draaien op de host-kernel, wat de verwerking en uitvoering erg snel maakt. Zelfs het opstarten van een container duurt slechts een fractie van een seconde. Omdat alle containers delen, het besturingssysteem hosten en alleen de toepassingsgerelateerde binaire bestanden en bibliotheken bevatten. Ze zijn licht van gewicht en sneller dan virtuele machines.

Voordelen van containerisatie ten opzichte van virtualisatie:

  • Containers op dezelfde OS-kernel zijn lichter en kleiner
  • Beter gebruik van bronnen in vergelijking met VM's
  • Het opstartproces is kort en duurt enkele seconden

In het diagram aan de rechterkant kun je zien dat er een hostbesturingssysteem is dat door alle containers wordt gedeeld. Containers bevatten alleen applicatiespecifieke bibliotheken die voor elke container afzonderlijk zijn en ze zijn sneller en verspillen geen bronnen.

Al deze containers worden afgehandeld door de containerisatielaag die niet eigen is aan het hostbesturingssysteem. Daarom is software nodig waarmee u containers op uw hostbesturingssysteem kunt maken en uitvoeren.

Bekijk deze Docker-zelfstudievideo voor een diepgaand begrip van Docker.

Docker-zelfstudie voor beginners | Wat is Docker? | DevOps-hulpprogramma's | Edureka

Laat me je nu door de introductie van Docker leiden.

Docker-zelfstudie - Inleiding tot Docker

Docker is een containerisatieplatform dat uw applicatie en al zijn afhankelijkheden samen verpakt in de vorm van containers om ervoor te zorgen dat uw applicatie naadloos werkt in elke omgeving.

kan een constructor privé zijn

Zoals je kunt zien in het diagram aan de rechterkant, zal elke applicatie op een aparte container draaien en zijn eigen set bibliotheken en afhankelijkheden hebben. Dit zorgt er ook voor dat er isolatie op procesniveau is, wat betekent dat elke applicatie onafhankelijk is van andere applicaties, waardoor ontwikkelaars de zekerheid hebben dat ze applicaties kunnen bouwen die elkaar niet storen.

Als ontwikkelaar kan ik een container bouwen waarop verschillende applicaties zijn geïnstalleerd en deze aan mijn QA-team geven, die alleen de container hoeft uit te voeren om de ontwikkelaarsomgeving te repliceren.

Voordelen van Docker

Nu hoeft het QA-team niet alle afhankelijke software en applicaties te installeren om de code te testen en dit helpt hen veel tijd en energie te besparen. Dit zorgt er ook voor dat de werkomgeving consistent is voor alle personen die bij het proces betrokken zijn, van ontwikkeling tot implementatie. Het aantal systemen is eenvoudig op te schalen en de code kan er moeiteloos op worden ingezet.

Virtualisatie versus containerisatie

Met virtualisatie en containerisatie kunt u beide meerdere besturingssystemen op een hostcomputer uitvoeren.

Virtualisatie houdt zich bezig met het creëren van veel besturingssystemen op een enkele hostmachine. Containerisatie daarentegen zal naar behoefte meerdere containers creëren voor elk type applicatie.

Figuur: Wat is big data-analyse - virtualisatie versus containerisatie

Zoals we op de afbeelding kunnen zien, is het belangrijkste verschil dat er meerdere gastbesturingssystemen in virtualisatie zijn die afwezig zijn in containerisatie. Het beste deel van Containerization is dat het erg licht is in vergelijking met de zware virtualisatie.

Laten we nu Docker installeren.

Docker installeren:

Ik ga Docker installeren op mijn Ubuntu 17.10-machine. Hieronder volgen de stappen om Docker te installeren:

  1. Installeer de vereiste pakketten
  2. Stel Docker-repository in
  3. Installeer Docker op Ubuntu

1. Installeer de vereiste pakketten:

Er zijn bepaalde pakketten die u nodig heeft in uw systeem om Docker te installeren. Voer de onderstaande opdracht uit om die pakketten te installeren.

sudo apt-get install curl apt-transport-https ca-certificaten software-eigenschappen-algemeen

2. Stel Docker Repository in:

Importeer nu de officiële GPG-sleutel van Dockers om de handtekening van het pakket te verifiëren voordat u ze installeert met apt-get. Voer de onderstaande opdracht uit op de terminal:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Voeg nu de Docker-repository toe aan uw Ubuntu-systeem die Docker-pakketten bevat inclusief de afhankelijkheden, voer daarvoor de onderstaande opdracht uit:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stabiel'

3. Installeer Docker op Ubuntu:

Nu moet je apt index upgraden en Docker community edition installeren, daarvoor voer je de onderstaande commando's uit:

sudo apt-get update sudo apt-get install docker-ce

Gefeliciteerd! Je hebt Docker met succes geïnstalleerd. Bekijk ook enkele veelgebruikte Docker-opdrachten .

Laten we nu een paar belangrijke Docker-concepten bekijken.

Dockerfile, Docker Image en Docker Container:

  1. Een Docker-image wordt gemaakt door de reeks opdrachten die zijn geschreven in een bestand genaamd Dockerfile.
  2. Wanneer dit Docker-bestand wordt uitgevoerd met een docker-opdracht, resulteert dit in een Docker-image met een naam.
  3. Wanneer deze afbeelding wordt uitgevoerd met de opdracht 'docker run', start het automatisch de toepassing of service die het moet starten bij de uitvoering ervan.

Docker Hub:

Docker Hub is als GitHub voor Docker-images. Het is in feite een cloudregistratie waar u Docker-afbeeldingen kunt vinden die zijn geüpload door verschillende gemeenschappen, u kunt ook uw eigen afbeelding ontwikkelen en uploaden naar Docker Hub, maar eerst moet u een account aanmaken op DockerHub.

hoe je een screenshot maakt in selenium

Docker-architectuur:

Het bestaat uit een Docker Engine, een client-servertoepassing met drie hoofdcomponenten:

  1. Een server die een soort langlopend programma is dat een daemon-proces wordt genoemd (het docker-commando).
  2. Een REST API die interfaces specificeert die programma's kunnen gebruiken om met de daemon te praten en hem te instrueren wat hij moet doen.
  3. Een opdrachtregelinterface (CLI) -client (de docker-opdracht).
  4. De CLI gebruikt de Docker REST API om de Docker-daemon te besturen of ermee te communiceren via scripting of directe CLI-opdrachten. Veel andere Docker-applicaties gebruiken de onderliggende API en CLI.

Raadpleeg deze blog om er meer over te lezen .

Ten slotte zal ik het in deze Docker Tutorial-blog hebben over Docker Compose.

Docker opstellen:

Docker Compose wordt in principe gebruikt om meerdere Docker Containers als een enkele server uit te voeren. Laat me je een voorbeeld geven:

Stel dat ik een applicatie heb die WordPress, Maria DB en PHP MyAdmin vereist. Ik kan één bestand maken dat zowel de containers als een service zou starten zonder dat ik ze afzonderlijk hoef te starten. Het is erg handig, vooral als u een microservice-architectuur heeft.

Verwijs mijn blog op Docker-container om te begrijpen hoe u het praktisch kunt uitvoeren.

Je kunt ook deze blog lezen over hoe je een mean stack-applicatie kunt containeriseren met Docker Compose.

Hiermee komen we een einde aan de eerste blog van Docker Tutorial over Inleiding tot Docker & Containerization.

Bekijk onze volgende blog over Docker:

Nu je hebt begrepen wat DevOps is, kun je onze door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen expertise op te doen in verschillende DevOps-processen en tools zoals Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack en GIT voor het automatiseren van meerdere stappen in SDLC.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.