Dockerfile-dən yaradılmış işlək konteynerə necə daxil olmaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
İşə salınmış konteynerə daxil olmaq üçün bir neçə üsul var:
-
docker exec: Ən yaygın və tövsiyə olunan üsul. Artıq işləyən konteynerdə komanda icra edir. -
docker attach: İşə salınmış konteynerin STDIN, STDOUT və STDERR-ə qoşulur. Adətən konteynerin əsas prosesi ilə qarşılıqlı əlaqə üçün istifadə olunur. -
Konteyner daxilində SSH serveri: Daha az yayılmış yanaşma, Dockerfile vasitəsilə imaja SSH serveri əlavə etməyi tələb edir. Təhlükəsizlik və idarəetmə baxımından hər zaman tövsiyə edilmir.
-
Ev sahibi sistemin debug alətləri: Bəzi hallarda,
nsenterkimi monitorinq və debug alətləri istifadə edilərək konteynerin ad məkanında proseslər yoxlanıla bilər.
Ən çevik və təhlükəsiz üsul docker exec istifadə etməkdir.
docker exec istifadə edərək interaktiv shell əldə etmək nümunəsi (məsələn, bash və ya sh):
# Konteyner daxilində interaktiv shell başlat
docker exec -it <container_id_or_name> bash
# Əgər bash mövcud deyilsə, sh istifadə edin
# docker exec -it <container_id_or_name> sh
İşə salınmış konteynerin ID və ya adını öyrənmək üçün:
# İşə salınmış konteynerlərin siyahısını göstər
docker ps
docker attach istifadə nümunəsi:
# Konteynerə qoşul. Diqqətli olun,
# çıxış əsas prosesi dayandıra bilər
docker attach <container_id_or_name>
docker exec və docker attach müqayisəsi:
| İmkan | docker exec |
docker attach |
|---|---|---|
| Yeni komanda başlatmaq | Bəli | Xeyr |
| Əsas prosesin STDIN/STDOUT/STDERR ilə qarşılıqlı əlaqə | Xeyr (standart) | Bəli |
| Çıxış konteyneri dayandırmadan | Bəli | Xeyr (standart) |
| Bir neçə əlaqə | Bəli (hər əlaqə yeni prosesdir) | Bəli (hamısı eyni prosesə qoşulur) |
DevOps-da konteynerə giriş adətən debug və ya bir dəfəlik əmrlər üçün lazım olur, buna görə docker exec üstünlük verilən vasitədir. Konteynerə daxil olmaq üçün SSH əlavə etmək "bir proses bir konteyner" prinsipini pozur və imicin mürəkkəbliyini artırır.