Docker - tətbiqləri konteynerlərdə paketləyib istənilən serverə deploy etməyə imkan verən platforma. VPS-də Docker ilə tətbiq quraşdırma 10 dəfə sürətlənir.
Docker niyə vacibdir?
"Mənim serverdə işləyirdi"
Klasik problem - kod yerli kompüterdə işləyir, serverdə yox. Docker hər iki yerdə eyni mühit təmin edir.
Hazır image-lər
WordPress, MySQL, Redis, Nginx - hazır Docker image-lər. Bir komandla qurulur.
Docker quraşdırma
curl -fsSL https://get.docker.com | sh
systemctl enable docker
systemctl start dockerİlk konteyner
docker run hello-worldDocker Hub-dan image endirilir, konteyner başlayır.
Image və konteyner
Image
"Template" - oxunabilən fayl sistemi. WordPress image - WordPress kodu, PHP, lazımi konfiqurasiya.
Konteyner
Image-dən yaranan "instance" - işləyən process.
Common komandalar
docker ps # işləyən konteynerlər
docker ps -a # bütün konteynerlər
docker images # endirilmiş image-lər
docker stop CONTAINER # dayandırmaq
docker rm CONTAINER # silmək
docker rmi IMAGE # image silməkWordPress Docker-də
Tək komand
docker run -d \
--name wordpress \
-p 80:80 \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=password \
wordpressDocker Compose
Multi-konteyner orchestration
docker-compose.yml faylı - bir neçə konteyner birgə işləyir.
Nümunə
version: "3"
services:
wordpress:
image: wordpress
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wp
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:Başlatmaq
docker-compose up -dVolumes (persistent data)
Niyə vacibdir?
Konteyner silinsə data itir. Volume - host-dan disk yer monte edilir.
Named volume
docker volume create wp_data
docker run -v wp_data:/var/www/html wordpressNetworking
Docker network
docker network create app-net
docker run --network app-net wordpressKonteynerlər arasında DNS adı ilə əlaqə.
Dockerfile - custom image
FROM php:8.3-fpm
RUN docker-php-ext-install pdo_mysql
COPY . /var/www/html
WORKDIR /var/www/htmlDocker registry
Docker Hub
Pulsuz public registry. Hər kəs image push edə bilər.
Private registry
Şirkət üçün öz registry. Docker private hub və ya AWS ECR.
Konteyner monitoring
docker stats
docker statsReal-time CPU, RAM istifadəsi hər konteyner üçün.
Portainer GUI
Web UI Docker üçün
Brauzerdən konteynerləri idarə et - command-line lazım deyil.
Production-da Docker
Docker Swarm
Docker-in öz orkestrasiyası - kiçik production üçün.
Kubernetes
Industri standartı - böyük production, microservices.
Hostinq.az VPS + Docker
KVM virtualizasiya
Hostinq.az KVM VPS-də Docker tam dəstəklənir. Hər tip tətbiq qurmaq olar.
Docker Compose templates
WordPress, Nextcloud, GitLab - hazır template-lər kütləvi istifadə olunur.
Hostinq.az VPS - Docker hazır.