Sobes.tech
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