i denne 4-artikelserie vil vi diskutere Docker, som er et open source letvægtsvirtualiseringsværktøj, der kører øverst på operativsystemniveau, så brugerne kan oprette, køre og implementere applikationer, indkapslet i små containere.
denne type containere har vist sig at være hurtige, bærbare og sikre. Processerne, der kører i en Docker-beholder, isoleres altid fra hovedværten og forhindrer manipulation udefra.
denne tutorial giver et udgangspunkt for, hvordan du installerer Docker, opretter og kører Docker-containere på CentOS / RHEL 8/7, men ridser næppe overfladen på Docker.
Trin 1: Installer og konfigurer Docker
1. Tidligere versioner af Docker blev kaldt docker eller docker-engine, Hvis du har disse installeret, skal du afinstallere dem, før du installerer en nyere docker-ce-version.
# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. For at installere den nyeste version af Docker-motoren skal du konfigurere Docker-depotet og installere Yum-utils-pakken for at aktivere Docker stable repository på systemet.
# yum install -y yum-utils# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. Installer nu den nyere docker-ce-version fra Docker-depotet og containerd manuelt, fordi Red Hat på grund af nogle problemer blokerede installationen af containerd.io > 1.2.0-3.el7
, som er en afhængighed af 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. Når Docker-pakken er installeret, skal du starte dæmonen, kontrollere dens status og aktivere den hele systemet ved hjælp af nedenstående kommandoer:
# systemctl start docker # systemctl status docker# systemctl enable docker
5. Til sidst skal du køre et containertestbillede for at kontrollere, om Docker fungerer korrekt, ved at udstede følgende kommando:
# docker run hello-world
Hvis du kan se nedenstående meddelelse, er alt på det rigtige sted.
Sample Output
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 bashShare 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 Kan du køre et par grundlæggende Docker-kommandoer for at få nogle oplysninger om Docker:
For system-wide information on Docker
# docker info
For Docker version
# docker version
7. To get a list of all available Docker commands type docker on your console.
# docker
Trin 2: Hent et Docker billede
8. For at starte og køre en Docker container, først, et billede skal hentes fra Docker Hub på din vært. Docker Hub tilbyder en masse gratis billeder fra sine arkiver.
for at søge efter et Docker-billede udsteder Ubuntu for eksempel følgende kommando:
# docker search ubuntu
9. Når du har besluttet, hvilket billede du vil køre baseret på dine behov, skal du hente det lokalt ved at køre nedenstående kommando (i dette tilfælde hentes og bruges et Ubuntu-billede):
# docker pull ubuntu
10. For at liste alle de tilgængelige Docker-billeder på din vært udsteder følgende kommando:
# docker images
11. Hvis du ikke længere har brug for et Docker-billede, og du vil fjerne det fra værtsproblemet, følgende kommando:
# docker rmi ubuntu
trin 3: Kør en Docker Container
når du udfører en kommando mod et billede, får du dybest set en container. Når kommandoen, der udføres i containeren, slutter, stopper containeren (du får en ikke-kørende eller forladt container). Hvis du kører en anden kommando til det samme billede igen, oprettes en ny container og så videre.
alle de oprettede containere forbliver på værtsfilsystemet, indtil du vælger at slette dem ved hjælp af kommandoendocker rm
.
12. For at oprette og køre en container skal du køre kommandoen til et hentet billede, i dette tilfælde Ubuntu, så en grundlæggende kommando ville være at vise distributionsversionsfilen inde i containeren ved hjælp af cat-kommandoen, som i følgende eksempel:
# docker run ubuntu cat /etc/issue
ovenstående kommando er opdelt som følger:
# docker run
13. For at køre en af containerne igen med kommandoen, der blev udført for at oprette den, skal du først hente container-ID ‘ et (eller navnet automatisk genereret af Docker) ved at udstede nedenstående kommando, som viser en liste over kørende og stoppede (ikke-kørende) containere:
# docker ps -l
14. Når container-ID ‘ et er opnået, kan du starte containeren igen med den kommando, der blev brugt til at oprette den, ved at udstede følgende kommando:
# docker start 923a720da57f
Her repræsenterer strengen 923a720da57f
containeren ID.
15. Hvis containeren kører tilstand, kan du få sit ID ved at udstede docker ps
kommando. For at stoppe det kørende containerproblem docker stop
kommando ved at angive container ID eller automatisk genereret navn.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. Et mere elegant alternativ, så du ikke behøver at huske container-ID ‘ET, ville være at tildele et unikt navn til hver container, du opretter ved hjælp af --name
på kommandolinjen, som i det følgende eksempel:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17. Derefter kan du bruge det navn, du tildelte til containeren, manipulere container (start, stop, Fjern, top, statistik) yderligere bare ved at adressere dets navn, som i nedenstående eksempler:
# docker start ubuntu20.04# docker stats ubuntu20.04# docker top ubuntu20.04
Vær opmærksom på, at nogle af ovenstående kommandoer muligvis ikke viser nogen output, hvis kommandoprocessen, der blev brugt til at oprette containeren, er færdig. Når processen, der kører inde i beholderen, er færdig, stopper beholderen.
Trin 4: Kør en interaktiv Session i en Container
18. For at interaktivt oprette forbindelse til en containerskalsession og køre kommandoer som du gør på en anden Linuksession, skal du udstede følgende kommando:
# docker run -it ubuntu bash
ovenstående kommando er opdelt som følger:
-
-i
bruges til at starte en interaktiv session. -
-t
tildeler en TTY og vedhæfter stdin og stdout. -
ubuntu
er det billede, vi brugte til at oprette containeren. -
bash
(eller /bin/bash) er den kommando, vi kører inde i Ubuntu-containeren.
19. For at afslutte og vende tilbage til vært fra den kørende containersession skal du skrive exit
kommando. Afslutningskommandoen afslutter alle containerprocesserne og stopper den.
# exit
20. Hvis du er interaktivt logget på container terminal prompt, og du skal holde containeren i kørende tilstand, men afslutte den interaktive session, kan du afslutte konsollen og vende tilbage til host terminal ved at trykke på Ctrl+p
og Ctrl+q
nøgler.
21. For at oprette forbindelse igen til den kørende container skal du bruge container-ID eller navn. Issuedocker ps
kommando for at få ID eller navn og derefter køredocker attach
kommando ved at angive container ID eller navn, som illustreret på billedet ovenfor:
# docker attach <container id>
22. For at stoppe en kørende container fra værtssessionen udstede følgende kommando:
# docker kill <container id>
det er alt for grundlæggende containermanipulation. I den næste tutorial vil vi diskutere, hvordan du gemmer, sletter og kører en internetserver i en Docker-container.