Installer Docker og lær grunnleggende containermanipulasjon i CentOS og RHEL 8/7 - del 1


I denne serien med fire artikler vil vi diskutere Docker, som er et lettvektsvirtualiseringsverktøy med åpen kildekode som kjører på toppen av operativsystemnivået, og lar brukere lage, kjøre og distribuere applikasjoner, innkapslet i små containere.

Denne typen Linux-beholdere har vist seg å være raske, bærbare og sikre. Prosessene som kjører i en Docker-beholder er alltid isolert fra hovedverten, og forhindrer tukling utenfra.

Denne opplæringen gir et utgangspunkt for hvordan du installerer Docker, oppretter og kjører Docker-beholdere på CentOS/RHEL 8/7, men skraper så vidt i overflaten til Docker.

Trinn 1: Installer og konfigurer Docker

1. Tidligere versjoner av Docker ble kalt docker eller docker-engine. Hvis du har disse installert, må du avinstaller dem før du installerer en nyere docker-ce-versjon.

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

2. For å installere den nyeste versjonen av Docker Engine må du sette opp Docker-depotet og installere pakken yum-utils for å aktivere Docker stabilt depot på systemet.

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

3. Installer nå den nyere docker-ce-versjonen fra Docker-depotet og containerd manuelt, fordi på grunn av noen problemer blokkerte Red Hat installasjonen av containerd.io > 1.2.0-3.el7, som er en avhengighet av 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. Etter at Docker-pakken er installert, start daemonen, kontroller statusen og aktiver den for hele systemet ved å bruke kommandoene nedenfor:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Til slutt, kjør et beholdertestbilde for å bekrefte om Docker fungerer som det skal, ved å utstede følgende kommando:

docker run hello-world

Hvis du kan se meldingen nedenfor, er alt på rett plass.

Eksempelutgang
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. Nå kan du kjøre noen grunnleggende Docker-kommandoer for å få litt informasjon om Docker:

For systemomfattende informasjon om Docker
docker info

For Docker-versjon
docker version

7. For å få en liste over alle tilgjengelige Docker-kommandoer skriv docker på konsollen.

docker

Trinn 2: Last ned et Docker-bilde

8. For å starte og kjøre en Docker-beholder, må først et bilde lastes ned fra Docker Hub på verten din. Docker Hub tilbyr mange gratis bilder fra depotene sine.

For å søke etter et Docker-bilde, Ubuntu, for eksempel, utsted følgende kommando:

docker search ubuntu

9. Etter at du har bestemt deg for hvilket bilde du vil kjøre basert på dine behov, laster du det ned lokalt ved å kjøre kommandoen nedenfor (i dette tilfellet lastes et Ubuntu-bilde ned og brukes ):

docker pull ubuntu

10. For å liste opp alle tilgjengelige Docker-bilder på verten din, utfør følgende kommando:

docker images

11. Hvis du ikke trenger et Docker-bilde lenger og du vil fjerne det fra verten, kan du utstede følgende kommando:

docker rmi ubuntu

Trinn 3: Kjør en Docker Container

Når du utfører en kommando mot et bilde, får du i utgangspunktet en beholder. Etter at kommandoen som kjøres inn i beholderen avsluttes, stopper beholderen (du får en ikke-løpende eller avsluttet beholder). Hvis du kjører en annen kommando inn i det samme bildet igjen, opprettes en ny beholder og så videre.

Alle beholderne som er opprettet vil forbli på vertsfilsystemet til du velger å slette dem ved å bruke kommandoen docker rm.

12. For å opprette og kjøre en beholder, må du kjøre kommandoen inn i et nedlastet bilde, i dette tilfellet Ubuntu, så en grunnleggende kommando ville være å vise distribusjonsversjonsfil inne i beholderen ved hjelp av cat-kommandoen, som i følgende eksempel:

docker run ubuntu cat /etc/issue

Kommandoen ovenfor er delt inn som følger:

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

13. For å kjøre en av containerne igjen med kommandoen som ble utført for å opprette den, må du først hente containeren ID (eller navnet som genereres automatisk av Docker) ved å utstede kommandoen nedenfor, som viser en liste over kjørende og stoppede (ikke-kjørende) beholdere:

docker ps -l 

14. Når beholderen ID er oppnådd, kan du starte beholderen på nytt med kommandoen som ble brukt til å opprette den, ved å utstede følgende kommando:

docker start 923a720da57f

Her representerer strengen 923a720da57f beholderen ID.

15. I tilfelle beholderen kjører, kan du få dens ID ved å utstede kommandoen docker ps. For å stoppe det kjørende containerproblemet docker stop-kommandoen ved å spesifisere containeren ID eller det automatisk genererte navnet.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Et mer elegant alternativ slik at du ikke trenger å huske beholderens ID er å tildele et unikt navn for hver beholder du oppretter ved å bruke - -navn-alternativet på kommandolinjen, som i følgende eksempel:

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

17. Deretter, ved å bruke navnet du tildelte beholderen, kan du manipulere beholderen (start, stopp, fjern, top, stats) bare ved å adressere navnet, som i eksemplene nedenfor:

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

Vær oppmerksom på at noen av kommandoene ovenfor kanskje ikke viser noe utdata hvis kommandoprosessen som ble brukt til å lage beholderen fullføres. Når prosessen som kjører inne i beholderen er ferdig, stopper beholderen.

Trinn 4: Kjør en interaktiv økt inn i en beholder

18. For å interaktivt koble til en beholderskalløkt og kjøre kommandoer som du gjør på en hvilken som helst annen Linux-økt, utfør følgende kommando:

docker run -it ubuntu bash

Kommandoen ovenfor er delt inn som følger:

  1. -i brukes til å starte en interaktiv økt.
  2. -t tildeler en TTY og legger ved stdin og stdout.
  3. ubuntu er bildet vi brukte til å lage beholderen.
  4. bash (eller /bin/bash) er kommandoen som vi kjører inne i Ubuntu-beholderen.

19. For å avslutte og gå tilbake til verten fra den kjørende containerøkten må du skrive inn exit-kommandoen. Kommandoen exit avslutter alle beholderprosessene og stopper den.

exit

20. Hvis du er interaktivt logget på beholderterminalforespørselen og du må holde beholderen i løpende tilstand, men avslutte den interaktive økten, kan du avslutte< konsollen og gå tilbake til vertsterminalen ved å trykke Ctrl+p og Ctrl+q-tastene.

21. For å koble til den kjørende beholderen igjen trenger du beholderens ID eller navn. Utfør kommandoen docker ps for å få ID eller navn, og kjør deretter kommandoen docker attach ved å spesifisere container ID eller navn, som illustrert i bildet ovenfor:

docker attach <container id>

22. For å stoppe en kjørende beholder fra vertsøkten, utfør følgende kommando:

docker kill <container id>

Det er alt for grunnleggende beholdermanipulering. I den neste opplæringen vil vi diskutere hvordan du lagrer, sletter og kjører en webserver inn i en Docker-beholder.