‫Oké, laten we wat leuke dingen doen. In deze lezing gaan we het snel hebben over het
‫verschil tussen afbeeldingen en containers. Dan gaan we meteen spelen
‫met een container. We gaan het starten, we
‫gaan het stoppen en verwijderen, en enkele algemene administratieve functies uitvoeren. Daarna gaan we de containerlogboeken bekijken en
‫de processen die in onze container worden uitgevoerd.
‫Dus voordat we er snel bij zijn, is het goed om het verschil te kennen tussen een afbeelding en een container. Een afbeelding is de binaire bestanden
‫en bibliotheken en broncode die allemaal deel uitmaken van uw toepassing. De container is een actief exemplaar
‫van die afbeelding.
‫Nu kunt u veel containers hebben die allemaal op dezelfde afbeelding zijn gebaseerd. In deze lezing gaan we de
‫Open Source Nginx-webserver gebruiken. Dus we beginnen onze
‫containers op basis van die Nginx-afbeelding. We halen al onze afbeeldingen uit registers. Registers lijken op
‫wat GitHub is voor broncode. Image-registers zijn voor container-images en de standaard voor Docker is Docker Hub, die u
‫kunt bekijken op hub.
‫havenarbeider. com.
‫Daar spelen we later meer mee.
‫Maar houd er voor nu rekening mee dat deze twee dingen heel verschillend zijn, en in de volgende sectie gaan
‫we naar afbeeldingen springen.
‫Maar laten we ons nu concentreren op containers.
‫OK, nu gaan we een nieuwe container starten en enkele Docker-commando's gebruiken om die container te beheren.
‫docker container
‫run publiceren 80:80 nginx.
‫Maak je geen zorgen als je niet weet wat dat allemaal betekent. We zullen het zo allemaal doornemen.
‫ik druk op enter...
‫schakel over naar mijn browser en typ localhost.
‫Daar gaan we.
‫Onze Nginx-server luistert. Ik kan meerdere keren op verversen drukken en je zult de
‫logboekvermeldingen hier in onze opdrachtregel zien gebeuren.
‫Wat hebben we nu net gedaan? Op de achtergrond
‫zocht de Docker-engine naar een afbeelding met de naam nginx en haalde de nieuwste
‫afbeelding voor nginx uit Docker Hub. Toen begon het als een nieuw proces in een nieuwe container die we konden gebruiken.
‫Het gepubliceerde deel van de opdracht onthult mijn lokale poort 80 op mijn lokale computer en stuurt al
‫het verkeer ervan naar het uitvoerbare bestand dat in die container op poort 80 draait.
‫En aangezien Nginx een webserver is, gaat het standaard naar poort 80 en wordt het verkeer gewoon automatisch doorgestuurd
‫via mijn browser naar mijn lokale host en in die container.
‫Maar we willen niet altijd dat dit ding op de voorgrond binnen onze opdrachtregel draait.
‫Dus laten we op Control c drukken en ik druk op de pijl omhoog en ik ga een beetje achteruit en typ
‫los.
‫Loskoppelen vertelt Docker nu om het op de achtergrond uit te voeren.
‫En we krijgen de unieke container-ID van onze container terug.
‫En elke keer dat u een nieuwe container uitvoert, krijgt u een nieuwe unieke ID.
‫Dus als we teruggaan naar onze browser en een paar keer op vernieuwen drukken, kun je zien dat het nog steeds actief is.
‫Dus laten we een opdracht doen om onze containers op te sommen. docker container ls En je zult degene
‫zien
‫die hier nog steeds draait.
‫Het komt overeen met de container-ID van de opdracht die we zojuist hebben uitgevoerd. Je zult zien dat de container nog steeds draait die we
‫net hebben gestart.
‫Dus laten we die container snel stoppen.
‫docker container stop. Dan de container-ID. Voor de container-ID hoef ik alleen de
‫eerste paar cijfers in te typen, genoeg om uniek te zijn, en ik stopte ermee.
‫Als ik nu een docker-container ls doe, zul je merken dat er niets verschijnt.
‫Dus de opdracht ls toont standaard alleen actieve containers.
‫Als ik een ls -a doe, krijg ik er twee terug. Waarom krijg ik er nu twee?
‫Toen we elke keer de opdracht docker container run uitvoerden, startte het een nieuwe
‫container vanuit die Nginx-afbeelding. Je zult hier rechts zien dat er deze willekeurige namen zijn. Deze hebben we niet gebruikt.
‫Hoe hebben we deze gekregen?
‫Het container-ID wordt dus altijd voor ons aangemaakt.
‫En de naam moet ook uniek zijn.
‫En als we het niet specificeren, wordt het voor ons gemaakt. We kunnen altijd zelf iets noemen, maar
‫als we het zijn eigen naam laten kiezen, is het eigenlijk een interessant stukje geschiedenis
‫rond Docker is dat ze dit al jaren hebben nu die naam willekeurig wordt gegenereerd uit een
‫open source-lijst met bijvoeglijke naamwoorden en de achternamen van opmerkelijke hackers of wetenschappers.
‫En het is best grappig dat er soms een aantal heel eigenaardige namen in staan.
‫Dus laten we een nieuwe maken. docker-container lopen. Zet in
‫onze publiceren en onze detach.
‫Maar deze keer gaan we een naam specificeren. Ik ga het webhost nginx noemen.
‫En als ik nu mijn docker-container ls -a doe, zie je drie containers.
‫Degene die we net zijn begonnen. Het heeft een naam van webhost en dan de twee die
‫we eerder begonnen en vervolgens stopten.
‫Omdat we dit niet meer op de voorgrond draaien, kunnen we de logs niet zien.
‫Dus laten we teruggaan naar onze browser en ik ga een paar keer op verversen drukken om wat logs te genereren.
‫Dan terug naar onze terminal en ik zal de webhost van de docker-containerlogboeken maken. En het spuugt de nieuwste logs uit in de
‫webhost.
‫Er zijn een aantal opties waarmee u wilt spelen met de opdracht logs om het de logs
‫automatisch te laten volgen of het kan gewoon de laatste paar loggebeurtenissen vastleggen, zodat u niet het hele
‫logbestand op uw scherm krijgt .
‫We kunnen ook enkele andere docker-containeropdrachten gebruiken om die actieve container te controleren. We kunnen docker container
‫top proberen. Daar zie je de hulp.
‫Dat laat ons weten dat we de containernaam webhost moeten specificeren. U kunt zien dat dit het proces is dat in de
‫container wordt uitgevoerd.
‫Voor Nginx hoeven we dit niet per se te weten, maar het is gewoon interessant om
‫op te
‫merken dat er met Nginx eigenlijk een hoofdproces is en dat het vervolgens werkprocessen voortbrengt op basis van de configuratie.
‫Nogmaals, we kunnen altijd docker container en --help typen om een lijst te krijgen van alle commando's die we op
‫die container zouden kunnen proberen.
‫Laten we nu opruimen wat we net hebben gedaan.
‫Dus laten we een docker-container doen.
‫ls -a, en dat geeft alle drie mijn containers weer.
‫Nu ga ik ze alle drie tegelijk verwijderen.
‫Soms kunnen subopdrachten van Docker meerdere waarden aannemen.
‫Dus in dit geval kan ik een docker-container rm doen en dan kan ik 63f 690 en ode specificeren.
‫oeps 0de.
‫Ik kreeg dus een fout. Wat is hier net gebeurd?
‫Oke. De eerste twee zijn veilig verwijderd.
‫De derde vertelt me dat ik een lopende container niet kan verwijderen omdat het een veiligheidsmaatregel is.
‫Het zorgt ervoor dat u niet per ongeluk het eigenlijke proces verwijdert dat nog loopt. Als je een docker-container ls doet,
‫zul je zien dat er nog steeds een actief is.
‫Nu zou ik echt een docker-containerstop kunnen doen om hem eerst te stoppen en vervolgens te verwijderen.
‫Maar ik ga eigenlijk een docker container rm -f voor force en 63f doen. En daar gaan we.
‫Als ik nu een docker-container ls -a doe, zul je zien dat er niets is.
‫Dus nu hebben we onze rotzooi opgeruimd.
‫OKE.
‫Dus in slechts enkele minuten konden we een enkele opdracht gebruiken om een Nginx-webserver te downloaden en uit te
‫voeren met een standaardconfiguratie luisterend op poort 80 en toen waren we in staat om er meerdere te maken, met de logs
‫te spelen en vervolgens de containers om op te ruimen wat we hadden gedaan.