Junior
Docker ilə bağlı təcrübəniz nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Fərqli layihələrdə Docker-dən aktiv istifadə 5 ildən çoxdur.
Təcrübə aşağıdakıları əhatə edir:
- Dockerfile inkişafı: Tətbiq şəkillərinin (veb, mikroservislər, verilənlər bazaları və s.) qurulması üçün optimallaşdırılmış və çox mərhələli Dockerfile-lər yaratmaq.
- Şəkillərin idarə olunması: Docker Hub, xüsusi depolar (GitLab Registry, Nexus) ilə işləmək, etiketləmək, versiyalaşdırmaq, istifadə olunmayan şəkilləri təmizləmək.
- Konteynerlərlə işləmək: İşə salmaq, dayandırmaq, yenidən başlatmaq, vəziyyəti izləmək, loglara baxmaq, konteyner daxilində əmrlər icra etmək (
docker exec). - Docker Compose: Çox konteynerli tətbiqləri təyin etmək və işlətmək üçün istifadə, xidmətlərin orkestrasiyası, şəbəkələr və həcm idarəçiliyi.
- Docker şəbəkələri: Müxtəlif şəbəkə sürücülərini (bridge, host, overlay) anlamaq və konfiqurasiya etmək, xidmətləri izolyasiya etmək üçün xüsusi şəbəkələr yaratmaq.
- Docker həcmələri: Məlumatların saxlanması, host və konteyner arasında faylların mübadiləsi üçün adlandırılmış həcm və bind montajlarından istifadə.
- Docker təhlükəsizliyi: Konteynerlərin izolyasiyasının əsaslarını anlamaq, rootless Docker istifadə etmək (mümkündürsə), şəkilləri zəifliklər üçün skan etmək.
- CI/CD ilə inteqrasiya: Docker şəkillərinin qurulması və yayımlanmasını CI/CD boru xətlərinə daxil etmək (Jenkins, GitLab CI, GitHub Actions).
- Orkestrasiya (əsas biliklər): Kubernetes prinsiplərini ümumi anlamaq (konteynerlərin yerləşdirilməsi, pody, replikasiya, xidmətlər), minikube/Kind-də sadə tətbiqləri test etmək təcrübəsi.
Docker Compose nümunələri:
# docker-compose.yaml
version: '3.8'
services:
app:
build: . # Cari qovluqdan şəkil qurulması
ports:
- "80:80" # Ana sistemin 80 portunu konteynerin 80 portuna yönəltmək
environment:
DATABASE_URL: postgres://user:password@db:5432/mydatabase # Ətraf mühit dəyişənləri
depends_on:
- db # db xidmətinə asılılıq
db:
image: postgres:14 # Standart postgres görüntüsündən istifadə
volumes:
- db_data:/var/lib/postgresql/data # Məlumatlar üçün davamlı həcm
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
db_data: # Adlandırılmış həcm təyini