Sobes.tech
Junior

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:

  1. docker exec: Ən yaygın və tövsiyə olunan üsul. Artıq işləyən konteynerdə komanda icra edir.

  2. 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.

  3. 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.

  4. Ev sahibi sistemin debug alətləri: Bəzi hallarda, nsenter kimi 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 execdocker 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.