Sobes.tech
Junior

Ի՞նչ փորձ ունեք Docker-ով:

sobes.tech AI

Պատասխան AI-ից

Ավելին 5 տարվա ակտիվ օգտագործում Docker տարբեր նախագծերում:

Փորձը ներառում է՝

  • Dockerfile մշակում: Օպտիմիզացված և բազմափուլային Dockerfile-ների ստեղծում հավելվածների պատկերների համար (վեբ, միկրոսերվիսներ, տվյալների բազաներ և այլն):
  • Պատկերների կառավարում: Աշխատանք Docker Hub-ով, մասնավոր պահոցներով (GitLab Registry, Nexus), տեգավորում, տարբերակավորում, անօգտագործվող պատկերների մաքառում:
  • Կոնտեյներների աշխատանք: Աշխատանք, կանգնեցում, վերագործարկում, վիճակի մոնիտորինգ, լոգների դիտում, հրամաններ կատարում կոնտեյների ներսում (docker exec):
  • Docker Compose: Օգտագործում բազմակոնտեյներային հավելվածների սահմանման և գործարկման համար, ծառայությունների օրգեստրացիա, ցանցերի և տոմների կառավարում:
  • Docker ցանցեր: Տարբեր ցանցային վարորդների (bridge, host, overlay) հասկանում և կարգավորում, օգտագործողի սահմանած ցանցեր ծառայությունների մեկուսացման համար:
  • Docker տոմներ: Անվանումով տոմների և bind mounts-ների օգտագործում տվյալների պահպանման, ֆայլերի փոխանակման համար հոստի և կոնտեյների միջև:
  • Docker անվտանգության հիմունքներ: Կոնտեյներների մեկուսացման հիմնական սկզբունքների հասկանում, rootless Docker- ի օգտագործում (որտեղ հնարավոր է), պատկերների սքանավորում թերությունների համար:
  • CI/CD ինտեգրում: Docker պատկերների հավաքում և հրապարակում CI/CD պլաններում (Jenkins, GitLab CI, GitHub Actions):
  • Օրգեստրացիա (հիմնական գիտելիքներ): Kubernetes-ի աշխատանքային սկզբունքների ընդհանուր հասկանում (կոնտեյներների տեղադրում, պոդեր, ռեպլիկացիաներ, ծառայություններ), փորձ՝ պարզ հավելվածներ minikube/Kind-ում փորձարկելու համար:

Docker Compose օգտագործման օրինակներ:

# docker-compose.yaml
version: '3.8'

services:
  app:
    build: .  # Կոնտեյներ ստեղծում ընթացիկ ֆայլից
    ports:
      - "80:80" # Հոսքի փոխանցում հոստից կոնտեյների 80 պորտին
    environment:
      DATABASE_URL: postgres://user:password@db:5432/mydatabase # շրջակա միջավայրի փոփոխականներ
    depends_on:
      - db # կախվածություն db ծառայությունից

  db:
    image: postgres:14 # Ստանդարտ postgres պատկեր օգտագործում
    volumes:
      - db_data:/var/lib/postgresql/data # Տրամադրող տոմ
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydatabase

volumes:
  db_data: # Անվանումով տոմ սահմանում