1.1 docker run komandası
Docker konteynerlərin yaradılması, işə salınması və idarə edilməsi üçün güclü alətlər təqdim edir. Docker-də ən vacib komandalarından biri docker run-dur, bu, mövcud image-lərə əsaslanaraq yeni konteynerlərin işə salınmasına imkan verir. Bu mühazirədə docker run komandasından istifadə edərək ilk konteynerinizi necə yaradıb işə salacağınızı ətraflı şəkildə nəzərdən keçirəcəyik, həmçinin bu komandanın daha mürəkkəb nümunələrini də öyrənəcəyik.
docker run komandası Docker image-lərindən konteyner yaratmaq və işə salmaq üçün istifadə olunur. Bu ən çox istifadə olunan komandalardan biridir və konteynerin davranışını tənzimləməyə imkan verən bir çox opsiyaya malikdir.
docker run komandasının əsas sintaksisi aşağıdakı kimi görünür:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Burada:
- OPTIONS: Konteynerin tənzimlənməsi üçün parametrlər (məsələn, portlar, həcmlər, mühit dəyişənləri).
- IMAGE: Konteynerin yaradılacağı image-in adı.
- COMMAND: Konteynerin içində yerinə yetiriləcək komanda.
- ARG...: Komanda üçün arqumentlər.
docker run istifadə üçün sadə nümunə
docker run komandasının necə işlədiyini başa düşmək üçün sadə bir nümunədən başlayaq.
docker run hello-world
Bu komanda hello-world image-ni Docker Hub-dan yükləyəcək (əgər o hələ yüklənməyibsə) və onu işə salacaq. Konteyner image-də müəyyən edilmiş komandaları icra edəcək və aşağıdakı mesajı ekrana çıxaracaq:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
1.2 Parametrlərlə işə salma
1. Konteyneri arxa planda işə salmaq
Varsayılan olaraq, konteynerlər interaktiv rejimdə işə salınır və onların çıxışı terminalınızda görünür
. Ancaq siz konteyneri arxa planda işə salmaq üçün -d (detached mode)
opsiyasından istifadə edə bilərsiniz.
docker run -d nginx
Bu komanda Nginx veb-serverini arxa planda işə salacaq. Docker sizə konteynerin idarə olunması üçün istifadə edilə biləcək konteyner identifikatorunu qaytaracaq.
2. Konteynerə ad təyin etmə
Konteynerlərin idarə olunmasını asanlaşdırmaq üçün siz konteynerə --name
parametri ilə ad təyin edə bilərsiniz.
docker run -d --name my_nginx nginx
İndi konteyneriniz my_nginx
adını daşıyacaq və siz Docker-in digər komandalarında onu adla istinad edə biləcəksiniz.
3. Konteynerin çıxışına baxış
Siz terminalınıza nəticə çıxışı edəcək bir komanda ilə konteyneri işə sala bilərsiniz. Bunun üçün -i (interactive)
və -t (pseudo-TTY)
parametrlərindən istifadə olunur.
docker run -it ubuntu bash
Bu komanda ubuntu
imicindən istifadə edərək bir konteyner işə salacaq və konteyner daxilində interaktiv Bash terminalını açacaq. Siz bu terminalda komandalarınızı adi Ubuntu sistemindəki kimi yerinə yetirə bilərsiniz.
4. Ətraf mühit dəyişənləri təyin etmək və istifadə etmək
-e
parametri vasitəsilə siz ətraf mühit dəyişənlərini konteynerə ötürə bilərsiniz.
docker run -e MY_VAR=value ubuntu env
Bu komanda MY_VAR ətraf mühit dəyişənini konteynerə ötürəcək və konteyner daxilində bütün ətraf mühit dəyişənlərini göstərəcək env
komandasını işə salacaq.
1.3 Docker run ilə mürəkkəb istifadələr
1. Müəyyən port ilə konteynerin işə salınması:
Bu komanda Nginx-i işə salır və konteynerin 80 portunu hostun 8080 portuna yönləndirir. İndi Nginx veb-serverinə daxil olmaq üçün brauzer açıb bunu yazın: http://localhost:8080.
docker run -d -p 8080:80 nginx
2. Kataloqu mount ilə konteynerin işə salınması:
Bu komanda, hostdakı /host/data kataloqunu konteynerdəki /container/data-ə mount edir. Bu, konteyner restart edildikdə məlumatların saxlanılması üçün faydalıdır.
docker run -d -v /host/data:/container/data ubuntu
3. Resurs məhdudiyyəti ilə konteynerin işə salınması:
Bu komanda konteyneri 1.5 CPU və 512 MB RAM ilə məhdudlaşdırılmış resurs istifadəsi ilə işə salır. Bu, multitasking mühitlərdə konteynerin istifadə etdiyi resurslara nəzarət üçün faydalıdır.
docker run -d --cpus="1.5" --memory="512m" ubuntu
1.4 Praktiki nümunələr
1. Veb tətbiqini işə salmaq
Deyək ki, sizin Node.js istifadə edən bir veb tətbiqiniz var və onu konteynerdə işə salmaq istəyirsiniz. Əvvəlcə tətbiqiniz üçün bir Dockerfile yaradın:
# Node.js üçün əsas imici istifadə edirik
FROM node:14
# İş mühitini təyin edirik
WORKDIR /app
# package.json-u kopiyalayırıq və asılılıqları quraşdırırıq
COPY package.json .
RUN npm install
# Tətbiqin qalan kodunu kopiyalayırıq
COPY . .
# Tətbiqin istifadə edəcəyi portu açırıq
EXPOSE 3000
# Tətbiqin işə salınması üçün komanda
CMD ["node", "app.js"]
İndi imici yarada və konteyneri işə sala bilərsiniz:
docker build -t my-node-app .
docker run -d -p 3000:3000 my-node-app
Tətbiqiniz http://localhost:3000 ünvanında əlçatan olacaq.
2. Məlumat bazasını işə salmaq
Docker istifadə edərək PostgreSQL nümunəsini işə salaq. docker run komandasından istifadə edərək, host sistemində quraşdırma və konfiqurasiya etmədən məlumat bazasını tez bir zamanda başlada bilərsiniz.
docker run -d --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432
postgres
Bu komanda aşağıdakıları edir:
-d
konteyneri arxa planda işə salır.--name konteynerə ad təyin edir.
-
-e
məsələn, postgres istifadəçi parolu kimi ətraf mühit dəyişənlərini təyin edir. -p
host portu 5432-ni konteynerin portu 5432-yə yönləndirir.
İndi localhost:5432 ünvanında təyin etdiyiniz paroldan istifadə edərək PostgreSQL məlumat bazasına qoşula bilərsiniz.
3. Python ilə konteyner işə salmaq
Sadə bir Python skripti ilə konteyner yaradaq və işə salaq. Əvvəlcə Dockerfile faylı yaradın:
# Python üçün əsas imici istifadə edirik
FROM python:3.9-slim
# Skripti konteynerə kopiyalayırıq
COPY script.py /app/script.py
# İş mühitini təyin edirik
WORKDIR /app
# Skripti işə salmaq üçün komanda
CMD ["python", "script.py"]
İndi script.py faylını yaradın:
print("Docker-dən salam!")
İmici yaradın və konteyneri işə salın:
docker build -t my-python-app .
docker run my-python-app
Nəticə olaraq çıxış görünəcək:
Docker-dən salam!
GO TO FULL VERSION