Zoeken op website

Installeer Docker en leer basiscontainermanipulatie in CentOS en RHEL 8/7 - Deel 1


In deze reeks van vier artikelen bespreken we Docker, een open-source lichtgewicht virtualisatietool die op besturingssysteemniveau draait en gebruikers in staat stelt applicaties te maken, uit te voeren en te implementeren, ingekapseld in kleine containers.

Het is bewezen dat dit type Linux-containers snel, draagbaar en veilig is. De processen die in een Docker container draaien, zijn altijd geïsoleerd van de hoofdhost, waardoor manipulatie van buitenaf wordt voorkomen.

Deze tutorial biedt een startpunt voor het installeren van Docker en het maken en uitvoeren van Docker-containers op CentOS/RHEL 8/7, maar bestrijkt nauwelijks de oppervlakte van Docker.

Stap 1: Docker installeren en configureren

1. Eerdere versies van Docker heetten docker of docker-engine. Als u deze geïnstalleerd heeft, moet u verwijder ze voordat u een nieuwere docker-ce versie installeert.

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. Om de nieuwste versie van de Docker Engine te installeren, moet je de Docker-repository instellen en het yum-utils-pakket installeren om Docker in te schakelen stabiele opslagplaats op het systeem.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. Installeer nu de nieuwere docker-ce versie vanuit de Docker-repository en containerd handmatig, omdat Red Hat vanwege een aantal problemen de installatie heeft geblokkeerd van containerd.io > 1.2.0-3.el7, wat een afhankelijkheid is van docker-ce.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Nadat het Docker-pakket is geïnstalleerd, start u de daemon, controleert u de status ervan en schakelt u deze voor het hele systeem in met behulp van de onderstaande opdrachten:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Voer ten slotte een containertestimage uit om te verifiëren of Docker correct werkt, door de volgende opdracht te geven:

docker run hello-world

Als u onderstaand bericht ziet, staat alles op de juiste plek.

Voorbeelduitvoer
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6. Nu kunt u een paar basis Docker-opdrachten uitvoeren om wat informatie over Docker te krijgen:

Voor systeembrede informatie over Docker
docker info

Voor Docker-versie
docker version

7. Om een lijst met alle beschikbare Docker-opdrachten te krijgen, typt u docker op uw console.

docker

Stap 2: Download een Docker-image

8. Om een Docker-container te starten en uit te voeren, moet eerst een image worden gedownload van Docker Hub op uw host. Docker Hub biedt veel gratis afbeeldingen uit zijn repository's.

Om naar een Docker-image te zoeken, geeft Ubuntu bijvoorbeeld de volgende opdracht:

docker search ubuntu

9. Nadat u op basis van uw behoeften heeft besloten welke afbeelding u wilt gebruiken, downloadt u deze lokaal door de onderstaande opdracht uit te voeren (in dit geval wordt een Ubuntu-afbeelding gedownload en gebruikt ):

docker pull ubuntu

10. Om alle beschikbare Docker-images op uw host weer te geven, voert u de volgende opdracht uit:

docker images

11. Als je geen Docker-image meer nodig hebt en je deze van de host wilt verwijderen, voer je het volgende commando uit:

docker rmi ubuntu

Stap 3: Voer een Docker-container uit

Wanneer u een opdracht op een afbeelding uitvoert, verkrijgt u feitelijk een container. Nadat de opdracht die in de container wordt uitgevoerd, is beëindigd, stopt de container (u krijgt een niet-actieve of verlaten container). Als u nog een opdracht in dezelfde afbeelding uitvoert, wordt er een nieuwe container gemaakt, enzovoort.

Alle gemaakte containers blijven op het hostbestandssysteem staan totdat u ervoor kiest ze te verwijderen met behulp van de opdracht docker rm.

12. Om een container te maken en uit te voeren, moet je de opdracht uitvoeren in een gedownloade afbeelding, in dit geval Ubuntu, dus een basisopdracht zou zijn om de distributieversiebestand in de container met behulp van de cat-opdracht, zoals in het volgende voorbeeld:

docker run ubuntu cat /etc/issue

Het bovenstaande commando is als volgt verdeeld:

docker run [local image] [command to run into container]

13. Om een van de containers opnieuw uit te voeren met de opdracht die werd uitgevoerd om deze te maken, moet u eerst de ID van de container verkrijgen (of de naam die automatisch door Docker wordt gegenereerd) door de onderstaande opdracht uit te voeren, die een lijst weergeeft met de actieve en gestopte (niet-actieve) containers:

docker ps -l 

14. Zodra de ID van de container is verkregen, kunt u de container opnieuw starten met het commando dat werd gebruikt om deze te maken, door het volgende commando te geven:

docker start 923a720da57f

Hier vertegenwoordigt de string 923a720da57f de container ID.

15. Als de container de status Actief heeft, kunt u de ID verkrijgen door de opdracht docker ps uit te voeren. Als u de actieve container wilt stoppen, geeft u de opdracht docker stop op door de ID van de container of de automatisch gegenereerde naam op te geven.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Een eleganter alternatief, zodat u de ID van de container niet hoeft te onthouden, is door een unieke naam toe te wijzen aan elke container die u maakt met behulp van de - -name optie op de opdrachtregel, zoals in het volgende voorbeeld:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. Vervolgens kunt u, met behulp van de naam die u aan de container heeft toegewezen, de container manipuleren (start, stop, verwijderen, top, stats) verder door simpelweg de naam aan te spreken, zoals in de onderstaande voorbeelden:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

Houd er rekening mee dat sommige van de bovenstaande opdrachten mogelijk geen uitvoer weergeven als het opdrachtproces dat is gebruikt om de container te maken, is voltooid. Wanneer het proces dat in de container plaatsvindt, is voltooid, stopt de container.

Stap 4: voer een interactieve sessie uit in een container

18. Om interactief verbinding te maken met een containershell-sessie en opdrachten uit te voeren zoals u dat bij elke andere Linux-sessie doet, geeft u de volgende opdracht:

docker run -it ubuntu bash

Het bovenstaande commando is als volgt verdeeld:

  1. -i wordt gebruikt om een interactieve sessie te starten.
  2. -t wijst een TTY toe en koppelt stdin en stdout.
  3. ubuntu is de afbeelding die we hebben gebruikt om de container te maken.
  4. bash (of /bin/bash) is de opdracht die we uitvoeren in de Ubuntu-container.

19. Om af te sluiten en terug te keren naar de host vanuit de actieve containersessie, moet u de opdracht exit typen. De opdracht exit beëindigt alle containerprocessen en stopt deze.

exit

20. Als u interactief bent ingelogd op de containerterminalprompt en u de container actief wilt houden, maar de interactieve sessie wilt afsluiten, kunt u afsluiten< de console en keer terug naar de hostterminal door op de toetsen Ctrl+p en Ctrl+q te drukken.

21. Om opnieuw verbinding te maken met de actieve container heeft u de ID of naam van de container nodig. Voer de opdracht docker ps uit om de ID of naam op te halen en voer vervolgens de opdracht docker Attach uit door container < op te gevenID of naam, zoals geïllustreerd in de afbeelding hierboven:

docker attach <container id>

22. Om een actieve container vanuit de hostsessie te stoppen, voert u de volgende opdracht uit:

docker kill <container id>

Dat is alles voor eenvoudige containermanipulatie. In de volgende zelfstudie bespreken we hoe u een webserver kunt opslaan, verwijderen en in een Docker-container kunt uitvoeren.