Namestite Docker in se naučite osnovne manipulacije s kontejnerji v CentOS in RHEL 8/7 - 1. del


V tej seriji s 4 članki bomo razpravljali o Dockerju, odprtokodnem lahkem orodju za virtualizacijo, ki deluje na vrhu operacijskega sistema in uporabnikom omogoča ustvarjanje, zagon in uvajanje aplikacij, zaprtih v majhne vsebnike.

Ta vrsta zabojnikov za Linux je dokazano hitra, prenosna in varna. Procesi, ki se izvajajo v vsebniku Dockerja, so vedno izolirani od glavnega gostitelja in preprečujejo nedovoljeno poseganje.

Ta vadnica ponuja izhodišče za namestitev Dockerja, ustvarjanje in zagon vsebnikov Docker na CentOS/RHEL 8/7, vendar komaj opraska površino Dockerja.

1. korak: Namestite in konfigurirajte Docker

1. Prejšnje različice Dockerja so se imenovale docker ali docker-engine, če jih imate nameščene, jih morate odstraniti, preden namestite novejšo različico docker-ce.

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

2. Če želite namestiti najnovejšo različico Docker Engine, morate nastaviti skladišče Docker in namestiti paket yum-utils, da omogočite stabilno skladišče Docker v sistemu.

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

3. Zdaj namestite novejšo različico docker-ce iz repozitorija Docker in jo ročno shranite, ker je Red Hat zaradi nekaterih težav blokiral namestitev containerd.io> 1.2.0-3.el7 , ki je odvisnost od 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. Po namestitvi paketa Docker zaženite demon, preverite njegovo stanje in ga omogočite v celotnem sistemu z uporabo spodnjih ukazov:

# systemctl start docker 
# systemctl status docker
# systemctl enable docker

5. Na koncu zaženite preskusno sliko vsebnika, da preverite, ali Docker deluje pravilno, tako da izdate naslednji ukaz:

# docker run hello-world

Če vidite spodnje sporočilo, potem je vse na pravem mestu.

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. Zdaj lahko zaženete nekaj osnovnih ukazov Docker, da dobite nekaj informacij o Dockerju:

# docker info
# docker version

7. Če želite dobiti seznam vseh razpoložljivih ukazov Docker, na konzolo vnesite docker.

# docker

2. korak: Prenesite sliko Dockerja

8. Če želite zagnati in zagnati vsebnik Dockerja, morate najprej prenesti sliko iz Docker Hub na vašem gostitelju. Docker Hub ponuja veliko brezplačnih slik iz svojih skladišč.

Če želite na primer poiskati sliko Dockerja, Ubuntu na primer izda naslednji ukaz:

# docker search ubuntu

9. Ko se glede na vaše potrebe odločite, katero sliko želite zagnati, jo prenesite lokalno, tako da zaženete spodnji ukaz (v tem primeru se prenese in uporabi slika Ubuntu):

# docker pull ubuntu

10. Če želite na seznamu vseh razpoložljivih slik Dockerja v izdaji gostitelja izdati naslednji ukaz:

# docker images

11. Če slike Dockerja ne potrebujete več in jo želite odstraniti iz gostitelja, izdajte naslednji ukaz:

# docker rmi ubuntu

3. korak: zaženite Docker Container

Ko izvedete ukaz proti sliki, v bistvu dobite vsebnik. Ko se ukaz, ki se izvaja v vsebniku, konča, se vsebnik ustavi (dobite neaktiven ali izhodni vsebnik). Če znova zaženete drug ukaz v isto sliko, se ustvari nov vsebnik itd.

Vsi ustvarjeni vsebniki bodo ostali v gostiteljskem datotečnem sistemu, dokler jih ne izbrišete z ukazom docker rm .

12. Če želite ustvariti in zagnati vsebnik, morate ukaz zagnati v preneseno sliko, v tem primeru Ubuntu, zato bi bil osnovni ukaz prikaz datoteke različice distribucije znotraj vsebnika z ukazom cat, kot v naslednjem primer:

# docker run ubuntu cat /etc/issue

Zgornji ukaz je razdeljen na naslednji način:

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

13. Če želite znova zagnati enega od vsebnikov z ukazom, ki je bil izveden za njegovo ustvarjanje, morate najprej dobiti ID vsebnika (ali ime, ki ga je Docker samodejno ustvaril) z izdajo spodnjega ukaza, ki prikaže seznam izvajanih in ustavljeni (ne delujoči) zabojniki:

# docker ps -l 

14. Ko je ID vsebnika pridobljen, ga lahko znova zaženete z ukazom, ki je bil uporabljen za njegovo izdelavo, tako da izdate naslednji ukaz:

# docker start 923a720da57f

Tu niz 923a720da57f predstavlja ID vsebnika.

15. Če se vsebnik izvaja, lahko njegov ID dobite z izdajo ukaza docker ps . Če želite ustaviti ukaz docker stop , ki se izvaja, z podajanjem ID-ja vsebnika ali samodejno ustvarjenega imena.

# docker stop 923a720da57f
OR
# docker stop cool_lalande
# docker ps

16. Elegantnejša alternativa, da se vam ne bi bilo treba spomniti ID-ja vsebnika, bi bila dodelitev edinstvenega imena vsakemu vsebniku, ki ga ustvarite z uporabo možnosti --name v ukazni vrstici, kot v naslednji primer:

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

17. Nato lahko z imenom, ki ste ga dodelili za vsebnik, nadzirate vsebnik (zagon, zaustavitev, odstranitev, vrh, statistika) samo tako, da naslovite njegovo ime, kot v spodnjih primerih:

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

Upoštevajte, da nekateri zgornji ukazi morda ne bodo prikazali izhoda, če se postopek ukaza, ki je bil uporabljen za ustvarjanje vsebnika, konča. Ko se postopek, ki poteka znotraj vsebnika, konča, se vsebnik ustavi.

4. korak: Zaženite interaktivno sejo v vsebnik

18. Če se želite interaktivno povezati v sejo lupine vsebnika in zagnati ukaze kot na kateri koli drugi seji Linuxa, izdajte naslednji ukaz:

# docker run -it ubuntu bash

Zgornji ukaz je razdeljen na naslednji način:

  1. -i se uporablja za začetek interaktivne seje.
  2. -t dodeli TTY in pritrdi stdin in stdout.
  3. ubuntu je slika, ki smo jo uporabili za ustvarjanje vsebnika.
  4. bash (ali/bin/bash) je ukaz, ki ga izvajamo znotraj vsebnika Ubuntu.

19. Če želite zapreti in se vrniti na gostitelja iz seje tekočega vsebnika, morate vnesti ukaz exit . Izhodni ukaz zaključi vse procese vsebnika in ga ustavi.

# exit

20. Če ste interaktivno prijavljeni v poziv terminala zabojnika in morate vsebnik obdržati v stanju delovanja, vendar izstopiti iz interaktivne seje, lahko konzolo zaprete in se vrnete v gostiteljski terminal s pritiskom na Ctrl + p in Ctrl + q .

21. Za ponovno povezavo s tekočim vsebnikom potrebujete ID ali ime vsebnika. Izdajte ukaz docker ps , da dobite ID ali ime in nato zaženite ukaz docker attach , tako da navedete ID ali ime vsebnika, kot je prikazano na zgornji sliki:

# docker attach <container id>

22. Če želite ustaviti tekoči vsebnik iz gostiteljske seje, izdajte naslednji ukaz:

# docker kill <container id>

To je vse za osnovno manipulacijo s posodami. V naslednji vadnici bomo razpravljali o tem, kako shraniti, izbrisati in zagnati spletni strežnik v vsebnik Docker.