↓ Naar de hoofdinhoud gaan

commando's

·886 woorden·5 mins
Inhoudsopgave

Hier zijn enkele basiscommando’s voor Docker om je op weg te helpen:

  • docker run: Start een container op basis van een image.
  • docker ps: Toont een lijst van alle actieve containers.
  • docker images: Toont een lijst van alle beschikbare images op je machine.
  • docker pull: Haalt een image op uit een registry (bijv. Docker Hub).
  • docker push: Uploadt een image naar een registry.
  • docker rm: Verwijdert een container.
  • docker rmi: Verwijdert een image.
  • docker build: Bouwt een image op basis van een Dockerfile.
  • docker exec: Voert een commando uit binnen een actieve container.
  • docker stop: Stopt een actieve container.
  • docker start: Start een gestopte container.

Praktische voorbeelden
#

  • docker run: Start een container op basis van een image.
docker run -it --name UbuntuContainer ubuntu:20.04

Dit commando maakt een nieuwe container aan met de naam “UbuntuContainer” op basis van de Ubuntu 20.04-image en opent een interactieve terminalsessie.

  • docker ps: Toont een lijst van alle actieve containers.
docker ps
  • docker ps -a: Toont een lijst van alle containers, inclusief gestopte containers.
docker ps -a
  • docker start: Start een gestopte container.
docker start UbuntuContainer
  • docker stop: Stopt een actieve container.
docker stop UbuntuContainer
  • docker rm: Verwijdert een container.
docker rm UbuntuContainer
  • Om alle gestopte containers te verwijderen, kun je dit gebruiken:
docker container prune
  • docker images: Toont een lijst van alle beschikbare images op je lokale machine.
docker images
  • docker rmi: Verwijdert een image.
docker rmi ubuntu:20.04
  • Om ongebruikte images te verwijderen, kun je dit gebruiken:
docker image prune
  • docker pull: Haalt een image op uit een registry (bijv. Docker Hub).
docker pull nginx
  • docker exec: Voert een commando uit binnen een draaiende container.
docker exec -it UbuntuContainer bash

Dit commando opent een interactieve terminalsessie in de “my-ubuntu”-container.

  • docker logs: Toont de logs van een container.
docker logs UbuntuContainer
  • docker cp: Kopieert bestanden of mappen tussen een container en het lokale bestandssysteem.
docker cp UbuntuContainer:/hello.txt .

Dit commando kopieert het bestand “hello.txt” van de “my-ubuntu”-container naar de huidige map op de lokale machine.

Docker Compose
#

Het gebruik van ad-hoc Docker-commando’s is ideaal voor applicaties die slechts één Docker-container nodig hebben om te draaien. Maar wat als je een applicatie hebt die interactie vereist tussen meerdere Docker-containers op dezelfde host? Je zou ze allemaal afzonderlijk kunnen downloaden en uitvoeren, maar dat kan al snel erg omslachtig worden! Om in deze behoefte te voorzien, is Docker Compose ontwikkeld! Docker Compose is een tool voor het definiëren en beheren van Docker-applicaties die uit meerdere containers bestaan. Hiermee kun je meerdere containers configureren, bouwen en uitvoeren als één geheel, wat het beheer van complexe applicaties bestaande uit meerdere services vereenvoudigt. Docker Compose gebruikt een YAML-configuratiebestand genaamd docker-compose.yml om de services, netwerken en volumes te definiëren die nodig zijn voor een applicatie.

Belangrijkste kenmerken van Docker Compose:
#

  • Vereenvoudigt het beheer van applicaties met meerdere containers: Met Docker Compose kun je de volledige applicatiestack – inclusief containers, netwerken en volumes – beheren via één enkel commando in plaats van meerdere Docker-commando’s.
  • Stroomlijnt de configuratie: Docker Compose stelt je in staat om de services, netwerken en volumes van je applicatie te definiëren in één enkel, voor mensen leesbaar YAML-bestand. Dit vereenvoudigt de configuratie en maakt deze makkelijker te begrijpen en te onderhouden.
  • Ondersteunt versiebeheer en samenwerking: Door het docker-compose.yml-bestand op te slaan in een versiebeheersysteem, kun je wijzigingen in de configuratie van je applicatie bijhouden, samenwerken met teamleden en indien nodig eenvoudig terugkeren naar eerdere configuraties. - Maakt omgevingsspecifieke configuraties mogelijk: Docker Compose ondersteunt het gebruik van omgevingsvariabelen en meerdere compose-bestanden, waardoor je configuraties kunt maken die specifiek zijn voor ontwikkeling, testen en productie.

Praktijkvoorbeeld
#

In dit voorbeeld gebruiken we Docker Compose om een ​​monitoringoplossing genaamd LibreNMS te installeren. Zet een cloud-VM op. Als je niet zeker weet hoe je dit in Oracle Cloud doet, kun je de handleiding Setting up a cloud VM in OCI raadplegen of Terraform gebruiken voor de implementatie.

Zodra dat is gebeurd, kun je de volgende commando’s uitvoeren:

  1. 1

    een map aanmaken

    Maak een map aan en ga naar die map:

    mkdir librenms
    cd librenms
  2. 2

    Download

    Download en pak de compose-bestanden uit

    wget https://github.com/librenms/docker/archive/refs/heads/master.zip
    unzip master.zip
  3. 3

    compose-map

    1. Ga naar de compose-map
    cd docker-master/examples/compose

    Deze commando’s maken een nieuwe map genaamd ’librenms’ aan en downloaden en pakken het zip-bestand van de LibreNMS GitHub uit. Dit zip-bestand bevat alle benodigde bestanden om de LibreNMS-containers te implementeren.

  4. 4

    apt-repository

    Wanneer je je in de compose-map bevindt, zie je dat er een verborgen .env-bestand is aangemaakt. Je kunt dit controleren met het volgende commando:

    ls -al
  5. 5

    .env

    Bewerk vervolgens dit bestand met het volgende commando:

    nano .env

    Dit bestand bevat variabelen die in het docker-compose-bestand worden gebruikt. Pas het wachtwoord aan en voer je eigen wachtwoord in.

    Daarna zijn we klaar om de containers te starten!

  6. 6

    Docker compose

    Voer Docker compose uit

    docker compose up -d

    En dat is alles! Alle benodigde images en containers worden voor je gedownload en gestart. Makkelijk, toch?

  7. 7

    controleren

    Je kunt controleren of alle containers succesvol zijn geïnitialiseerd met het volgende commando:

    docker ps

    Als je Portainer hebt geïnstalleerd, kun je dit ook controleren via de Portainer-interface (GUI).

Opmerking

Als je LibreNMS in je project wilt gebruiken, houd er dan rekening mee dat bij het toevoegen van een host ICMP-communicatie (ping) mogelijk moet zijn vanuit het monitoringsysteem naar de doel-VM of -host.