5.1 docker exec
komandasının əsasları
docker exec
komandası işləyən konteynerlərlə qarşılıqlı əlaqə üçün vacib bir vasitədir. O, sizə konteyner daxilində komandalar işə salmaq və interaktiv sessiyalar açmağa imkan verir ki, bu da administrativ tapşırıqların, debug və monitorinq işlərinin yerinə yetirilməsi üçün faydalıdır. Bu mühazirədə biz docker exec
komandasını necə istifadə edəcəyimizi, mövcud parametrləri və praktiki tətbiq nümunələrini dərindən araşdıracağıq.
docker exec
komandası işləyən konteynerdə komanda yerinə yetirmək üçün istifadə olunur. Bu komanda vasitəsilə konteynerə daxil ola və onunla qarşılıqlı əlaqə qura bilərsiniz, sanki birbaşa serverdə işləyirmişsiniz kimi.
Sintaksis
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Harada:
-
CONTAINER
: daxil olmaq istədiyiniz konteynerin adı və ya identifikatoru. -
COMMAND
: konteyner daxilində yerinə yetirmək istədiyiniz komanda. ARG...
: komanda üçün arqumentlər.
Əsas istifadənin nümunəsi
Bu nümunə my_container
konteynerində ls /app
komandasını işə salacaq, bu da konteynerdəki /app
kataloqunun məzmununu görməyə imkan verəcək.
docker exec my_container ls /app
5.2 docker exec komandası üçün parametrlər
docker exec
komandası bir neçə opsiyanı dəstəkləyir. Bunlar, konteyner içərisində komanda icrasının davranışını tənzimləməyə imkan verir.
1. İnteraktiv sessiyanın açılması
İnteraktiv sessiya açmaq üçün -i
(interactive) və -t
(pseudo-TTY) opsiyalarının kombinasiyası istifadə olunur.
docker exec -it my_container /bin/bash
Bu nümunə my_container
konteynerinin daxilində interaktiv bir Bash
terminalı açacaq və sizə real vaxtda komandalar icra etməyə imkan verəcək.
2. Komandaların detach rejimində icra edilməsi
Əgər sizə komandanı icra etmək və nəticələrini izləməmək lazımdırsa, -d (detached mode)
opsiyasından istifadə edə bilərsiniz.
docker exec -d my_container touch /app/newfile.txt
Bu nümunə my_container
konteyneri daxilindəki /app
qovluğunda boş bir fayl newfile.txt
yaradacaq və dərhal terminala nəzarəti qaytaracaq.
3. Xüsusi mühit dəyişənlərinin təyin edilməsi
Siz konteynerə mühit dəyişənlərini ötürmək üçün -e
parametrlərindən istifadə edə bilərsiniz.
docker exec -e MY_VAR = value my_container env
Bu nümunə MY_VAR
mühit dəyişənini konteynerə ötürəcək və konteyner daxilindəki bütün mühit dəyişənlərini göstərmək üçün env
komandasını işə salacaq.
5.3 İstifadə nümunələri
Nümunə 1: Konteyner daxilində işləyən proseslərin siyahısına baxış
Bu nümunə ps aux
komandasını konteyner my_container
daxilində icra edəcək, işləyən bütün proseslərin siyahısını göstərəcək.
docker exec my_container ps aux
Nümunə 2: Konteynerdə xidmətin vəziyyətinin yoxlanması
Bu nümunə service nginx status
komandasını konteyner my_container
daxilində icra edəcək, Nginx
xidmətinin vəziyyətini göstərəcək.
docker exec my_container service nginx status
Nümunə 3: Konteyner daxilində paketlərin quraşdırılması
Bu nümunə paketlərin siyahısını yeniləyəcək və konteynerdə Vim
redaktorunu quracaq my_container
.
docker exec my_container apt-get update && apt-get install -y vim
5.4 Praktiki ssenarilər
1. Konteynerlərin idarə olunması
docker exec əmri administratorlara baxım işlərini birbaşa konteynerlərin içində həyata keçirmək imkanı verir. Məsələn, konfiqurasiya fayllarını redaktə etmək, logları yoxlamaq və ya faylların icazələrini dəyişmək olar.
docker exec -it my_container vim /etc/nginx/nginx.conf
2. Tətbiqlərin debugg olunması
Tətbiqlərin yaradılması və test olunması zamanı docker exec əmri developerlərə tətbiqin vəziyyətini yoxlamaq, debug komandalarını icra etmək və errorları təhlil etmək imkanı yaradır.
docker exec -it my_container python /app/scripts/debug.py
3. Monitorinq və diaqnostika
docker exec əmri diaqnostik komandaların icrası üçün və konteynerin vəziyyətinin monitorinq olunması üçün istifadə olunur. Məsələn, resurs istifadəsini, şəbəkə bağlantılarını və digər metrikləri yoxlamaq olar.
docker exec my_container top
Bu nümunə my_container konteynerində top komandasını icra edəcək və cari resurs istifadəsini göstərəcək.
5.5 Əlavə tövsiyələr
1. Təhlükəsizliyin təmin edilməsi
docker exec əmrindən istifadə edərkən təhlükəsizlik məsələlərini nəzərə almaq vacibdir. Əmin olun ki, konteynerlərə giriş məhduddur və yalnız avtorizasiya edilmiş istifadəçilər konteyner daxilində əmrlər icra edə bilərlər.
2. Vəzifələrin avtomatlaşdırılması
Siz rutin vəzifələri avtomatlaşdırmaq üçün docker exec əmrini istifadə edən skriptlərdən istifadə edə bilərsiniz. Bu, mürəkkəb iş axınları yaratmağa və konteynerlərin idarə edilməsini avtomatlaşdırmağa kömək edir.
#!/bin/bash
for container in $(docker ps -q); do
docker exec $container uptime
done
Bu skript bütün işləyən konteynerlərdə uptime
əmrini icra edəcək və onların işləmə vaxtını göstərəcək.
3. Loglar və problemlərin həlli
Bəzi hallarda əmrin icrası səhvlə nəticələnə bilər. Belə hallar üçün problem diaqnostikası üçün konteynerin loglarına baxmaq faydalıdır.
docker logs my_container
GO TO FULL VERSION