Docker o'rnatish va birinchi konteyner
Nazariyani bildik โ endi amalga o'tamiz. Ushbu darsda Docker'ni kompyuteringizga o'rnatishni, uning ishlayotganini tekshirishni va birinchi konteynerlaringizni ishga tushirishni o'rganamiz. Barcha buyruqlarni o'z terminalingizda sinab ko'ring.
Docker'ni o'rnatish
O'rnatish operatsion tizimga bog'liq. Ikkita asosiy yo'l bor:
- Windows va macOS: Docker Desktop dasturini o'rnatasiz. Bu grafik interfeysli qulay dastur bo'lib, Docker'ning barcha imkoniyatlarini o'z ichiga oladi. Uni docker.com saytidan yuklab olasiz.
- Linux: odatda Docker Engine to'g'ridan-to'g'ri paket menejeri orqali o'rnatiladi (Desktop ham mavjud, ammo shart emas).
Ubuntu/Debian kabi Linux tizimlarida rasmiy skript orqali o'rnatish eng oson usul:
# Rasmiy o'rnatish skriptini yuklab, ishga tushirish
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# O'zingizni docker guruhiga qo'shish (sudo'siz ishlatish uchun)
sudo usermod -aG docker $USER
usermod buyrug'idan so'ng tizimdan chiqib, qayta kirishingiz (yoki qayta yuklashingiz) kerak โ shundagina docker buyruqlarini sudosiz ishlatasiz. Windows/macOS'da Docker Desktop'ni o'rnatib, ishga tushirish kifoya.Docker ishlayotganini tekshirish
O'rnatilgach, birinchi ish โ Docker to'g'ri o'rnatilganini tekshirish. Buning uchun versiyasini so'raymiz:
docker --version
Agar hammasi joyida bo'lsa, taxminan shunday javob ko'rasiz:
Docker version 27.3.1, build ce12230
Batafsilroq ma'lumot uchun docker info buyrug'ini ham ishlatish mumkin โ u o'rnatilgan Docker haqidagi to'liq holatni ko'rsatadi.
sudo systemctl start docker buyrug'ini bering.Birinchi konteyner: hello-world
Docker o'rnatilganini tekshirishning rasmiy usuli โ maxsus hello-world image'ini ishga tushirish. Bu kichkina image faqat bitta xabar chiqarib, tugaydi:
docker run hello-world
Bu buyruq quyidagilarni bajaradi: avval mahalliy kompyuterda hello-world image'ini qidiradi, topilmasa Docker Hub'dan avtomatik yuklab oladi, so'ng undan konteyner yaratib ishga tushiradi. Natijada shunday xabar ko'rasiz:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
docker run โ Docker'dagi eng muhim buyruq. U ikki ishni birga bajaradi: agar kerak bo'lsa image'ni yuklab oladi (pull) va undan konteyner yaratib ishga tushiradi (create + start).Ubuntu konteynerini ishga tushirish
Endi haqiqiy operatsion tizim konteynerini sinab ko'ramiz. Ubuntu image'ini ishga tushirib, uning ichiga kirib, buyruqlar bera olamiz. Buning uchun -it bayroqlaridan foydalanamiz (interaktiv terminal):
docker run -it ubuntu bash
Bu buyruq Ubuntu konteynerini ishga tushiradi va sizni uning ichidagi bash terminaliga olib kiradi. Endi siz konteyner ichidasiz โ bu izolyatsiyalangan alohida Linux muhiti:
root@a1b2c3d4:/# ls
bin boot dev etc home lib ...
root@a1b2c3d4:/# cat /etc/os-release
NAME="Ubuntu"
...
root@a1b2c3d4:/# exit
exit buyrug'i konteynerdan chiqadi va konteyner to'xtaydi. Diqqat: bu Ubuntu asosiy kompyuteringizdan butunlay ajratilgan โ unda o'zgartirilgan narsalar sizning tizimingizga ta'sir qilmaydi.
Nginx veb-serverini ishga tushirish
Endi haqiqiy foydali misol โ nginx veb-serverini konteynerda ishga tushiramiz. Bunda bir nechta muhim bayroqlarni ishlatamiz:
docker run -d -p 8080:80 --name mening-serverim nginx
Bu buyruqni bo'laklarga ajratamiz:
-dโ konteynerni fonda (detached) ishga tushiradi, terminalni band qilmaydi;-p 8080:80โ portni bog'laydi: kompyuteringizning 8080-portini konteynerning 80-portiga ulaydi;--name mening-serverimโ konteynerga nom beradi (aks holda tasodifiy nom beriladi);nginxโ ishlatiladigan image nomi.
Endi brauzeringizda http://localhost:8080 manzilini ochsangiz, nginx'ning standart sahifasini ko'rasiz. Konteyner fonda ishlab turadi. Uni to'xtatish uchun:
docker stop mening-serverim
Asosiy bayroqlar: -d, -p, --name
Yuqorida ishlatgan uchta bayroq amalda eng ko'p uchraydi. Ularni yaxshi eslab qoling:
-d(detached) โ konteyner fonda ishlaydi. Bu bayroqsiz konteyner terminalni egallab turadi va uni yopsangiz konteyner ham to'xtaydi;-p host:container(publish) โ konteyner ichidagi portni tashqi dunyoga ochadi. Chapdagi raqam โ kompyuteringiz porti, o'ngdagi โ konteyner porti;--name nomโ konteynerga tushunarli nom beradi. Keyinchalik unga shu nom orqali murojaat qilasiz (to'xtatish, o'chirish va h.k.).
-p) muhim tushuncha: konteyner izolyatsiyalangani sababli, uning ichidagi xizmatga tashqaridan kirish uchun portni maxsus 'ochish' kerak. -p 8080:80 degani โ 'kompyuterimning 8080-portiga kelgan so'rovni konteynerning 80-portiga yubor'.Xulosa
- Windows/macOS uchun Docker Desktop, Linux uchun Docker Engine o'rnatiladi;
docker --versionโ o'rnatilganini tekshiradi,docker run hello-worldโ ishlashini sinaydi;docker run -it ubuntu bashโ konteyner ichiga interaktiv kirish imkonini beradi;docker run -d -p 8080:80 --name nom nginxโ nginx serverini fonda, port bog'lab ishga tushiradi;-dโ fonda ishlash,-pโ port bog'lash,--nameโ nom berish.