i denna 4-artikelserie kommer vi att diskutera Docker, som är ett open-source lättviktsvirtualiseringsverktyg som körs högst upp på operativsystemnivå, så att användare kan skapa, köra och distribuera applikationer, inkapslade i små behållare.
denna typ av Linux-behållare har visat sig vara snabb, bärbar och säker. Processerna som körs i en Docker-behållare är alltid isolerade från huvudvärden, vilket förhindrar yttre manipulering.
denna handledning ger en utgångspunkt för hur man installerar Docker, skapar och kör Docker-behållare på CentOS/RHEL 8/7, men skrapar knappt ytan på Docker.
Steg 1: Installera och konfigurera Docker
1. Tidigare versioner av Docker kallades docker eller docker-engine, Om du har dessa installerade måste du avinstallera dem innan du installerar en nyare docker-ce-version.
# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. För att installera den senaste versionen av Docker Engine måste du ställa in Docker-arkivet och installera Yum-utils-paketet för att aktivera 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. Installera nu den nyare docker-ce-versionen från Docker-förvaret och containerd manuellt, eftersom Red Hat på grund av vissa problem blockerade installationen av containerd.io > 1.2.0-3.el7
, vilket är ett beroende 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. Efter, Docker paket har installerats, starta demonen, kontrollera dess status och aktivera det hela systemet med hjälp av nedanstående kommandon:
# systemctl start docker # systemctl status docker# systemctl enable docker
5. Slutligen kör en containertestbild för att verifiera om Docker fungerar korrekt genom att utfärda följande kommando:
# docker run hello-world
Om du kan se meddelandet nedan är allt på rätt plats.
Provutgång
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öra några grundläggande Docker-kommandon för att få lite information 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
steg 2: Ladda ner en Docker-bild
8. För att starta och köra en Docker-behållare måste först en bild hämtas från Docker Hub på din värd. Docker Hub erbjuder många gratis bilder från sina förvar.
för att söka efter en Docker-bild, Ubuntu, till exempel, utfärda följande kommando:
# docker search ubuntu
9. När du har bestämt dig för vilken bild du vill köra baserat på dina behov, ladda ner den lokalt genom att köra kommandot nedan (i det här fallet laddas en Ubuntu-bild ner och används):
# docker pull ubuntu
10. För att lista alla tillgängliga Docker-bilder på din värd utfärdar följande kommando:
# docker images
11. Om du inte behöver en Docker-bild längre och du vill ta bort den från värdproblemet följande kommando:
# docker rmi ubuntu
steg 3: Kör en Docker-behållare
När du kör ett kommando mot en bild får du i princip en behållare. När kommandot som körs i behållaren slutar stannar behållaren (du får en behållare som inte körs eller avslutas). Om du kör ett annat kommando i samma bild igen skapas en ny behållare och så vidare.
alla skapade behållare kommer att finnas kvar i värdfilsystemet tills du väljer att ta bort dem med kommandotdocker rm
.
12. För att skapa och köra en behållare måste du köra kommandot i en nedladdad bild, i det här fallet Ubuntu, så ett grundläggande kommando skulle vara att visa distributionsversionsfilen inuti behållaren med cat-kommandot, som i följande exempel:
# docker run ubuntu cat /etc/issue
ovanstående kommando är uppdelat enligt följande:
# docker run
13. För att köra en av behållarna igen med kommandot som kördes för att skapa det måste du först få behållar-ID (eller namnet som automatiskt genereras av Docker) genom att utfärda kommandot nedan, som visar en lista över de körda och stoppade (icke-körda) behållarna:
# docker ps -l
14. När behållar-ID har erhållits kan du starta behållaren igen med kommandot som användes för att skapa den genom att utfärda följande kommando:
# docker start 923a720da57f
här representerar strängen 923a720da57f
behållar-ID.
15. Om behållaren körs tillstånd, kan du få dess ID genom att utfärdadocker ps
kommando. För att stoppa det löpande containerproblemetdocker stop
-kommandot genom att ange behållar-ID eller automatiskt genererat namn.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. Ett mer elegant alternativ så att du inte behöver komma ihåg behållar-ID skulle vara att tilldela ett unikt namn för varje behållare du skapar med alternativet --name
på kommandoraden, som i följande exempel:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17. Sedan kan du använda namnet som du tilldelade för behållaren, du kan manipulera behållaren (start, stopp, ta bort, topp, statistik) ytterligare bara genom att adressera dess namn, som i nedanstående exempel:
# docker start ubuntu20.04# docker stats ubuntu20.04# docker top ubuntu20.04
var medveten om att några av ovanstående kommandon kanske inte visar någon utgång om kommandoprocessen som användes för att skapa behållaren avslutas. När processen som körs inuti behållaren är klar stannar behållaren.
steg 4: Kör en interaktiv Session i en behållare
18. För att interaktivt ansluta till en container shell-session och köra kommandon som du gör på någon annan Linux-session, utfärda följande kommando:
# docker run -it ubuntu bash
ovanstående kommando är uppdelat enligt följande:
-
-i
används för att starta en interaktiv session. -
-t
allokerar en TTY och fäster stdin och stdout. -
ubuntu
är bilden som vi använde för att skapa behållaren. -
bash
(eller /bin/bash) är kommandot som vi kör inuti Ubuntu-behållaren.
19. För att avsluta och återgå till värd från den löpande behållarsessionen måste du skriva exit
kommando. Exit-kommandot avslutar alla behållarprocesser och stoppar det.
# exit
20. Om du är interaktivt inloggad på containerterminalprompten och du måste hålla behållaren i körläge men avsluta den interaktiva sessionen kan du avsluta konsolen och återgå till värdterminalen genom att trycka på Ctrl+p
och Ctrl+q
tangenterna.
21. För att återansluta till den löpande behållaren behöver du behållarens ID eller namn. Issuedocker ps
kommando för att få ID eller namn och sedan köradocker attach
kommando genom att ange container ID eller namn, som illustreras i bilden ovan:
# docker attach <container id>
22. För att stoppa en löpande behållare från värdsessionen utfärdar du följande kommando:
# docker kill <container id>
det är allt för grundläggande behållarmanipulation. I nästa handledning kommer vi att diskutera hur man sparar, tar bort och kör en webbserver i en Docker-behållare.