GoDasturchi
Why Containers?

Why Containers?

Nega konteynerlar kerak?

"Mening kompyuterimda ishlaydi!" — bu dasturchilar orasida eng mashhur, lekin eng achinarli jumlalardan biri. Siz dasturni o'z noutbukingizda mukammal ishlab chiqasiz, lekin uni serverga joylashtirganingizda — u yerda boshqa Go versiyasi, boshqa operatsion tizim, yoki boshqa kutubxona borligi sababli dastur ishlamay qoladi.

Konteyner (container) — aynan shu muammoni hal qiladi. Uni sayohat qiladigan lunch-box'ga o'xshating: siz uyingizda ovqat tayyorlaysiz, uni qopqog'i mahkam yopiladigan qutiga solasiz, va uni ishxonaga olib borasiz — u yerdagi muzlatgich yoki mikroto'lqinli pech qanday bo'lishidan qat'i nazar, ovqatingiz aynan o'sha holatda, o'zgarishsiz qoladi. Konteyner ham dasturingizni, uning barcha kerakli kutubxonalari va sozlamalari bilan birga, bitta "qutiga" joylab, uni istalgan kompyuterda aynan bir xil ishlashini kafolatlaydi.

tushuncha.txt
Virtual mashina (VM):          Konteyner:
+----------------------+       +----------------------+
| Ilova A | Ilova B    |       | Ilova A | Ilova B    |
| Kutubxonalar         |       | Kutubxonalar         |
| To'liq OS (Guest)    |       +----------------------+
+----------------------+       | Docker Engine        |
| Gipervizor           |       +----------------------+
+----------------------+       | Host OS (bitta)      |
| Host OS              |       +----------------------+
+----------------------+       | Uskuna               |
| Uskuna               |       +----------------------+
+----------------------+

VM  har biriga TO'LIQ operatsion tizim kerak (og'ir, sekin ishga tushadi).
Konteyner  bitta operatsion tizim yadrosini BAHAM KO'RADI (yengil, tez).

Ko'p odamlar konteynerni "kichik virtual mashina" deb o'ylashadi, lekin bu unchalik to'g'ri emas. Virtual mashina — har biri o'zining TO'LIQ operatsion tizimiga ega, alohida "kvartira"lar kabi. Konteyner esa — bitta operatsion tizim yadrosini (kernel) barcha konteynerlar baham ko'radigan, lekin har biri o'zining fayl tizimi va jarayonlarini ko'radigan alohida "xonalar"ga o'xshaydi. Shuning uchun konteyner virtual mashinadan ancha yengil va tez ishga tushadi (soniyalar ichida, VM esa daqiqalar talab qilishi mumkin).

Docker — konteynerlar yaratish va boshqarish uchun eng mashhur vosita. Bu kursda siz Go ilovangizni Docker yordamida "qutiga solib", uni istalgan serverga, o'zgarishsiz ishlaydigan holda joylashtirishni o'rganasiz. Diqqat: bizning interaktiv o'quv muhitimiz haqiqiy Docker dvigatelini ishga tushira olmaydi (bu — alohida, to'liq operatsion tizim darajasidagi vosita), shuning uchun bu kurs darslari kod yozib, natijani o'qib chiqish (interaktiv mashqsiz) formatida bo'ladi — lekin har bir ko'rsatilgan buyruq va fayl aynan haqiqiy loyihada ishlatiladigan, to'g'ri Docker sintaksisi.

Key Takeaway

Key Takeaway:

Konteyner — dasturni barcha kerakli qismlari bilan birga "qutiga solib", uni istalgan kompyuterda bir xil ishlashini ta'minlaydi; virtual mashinadan farqli o'laroq, u operatsion tizim yadrosini baham ko'rgani uchun ancha yengil va tez.

NEXT UP

Your First Container

Why Containers?

Nega konteynerlar kerak?

"Mening kompyuterimda ishlaydi!" — bu dasturchilar orasida eng mashhur, lekin eng achinarli jumlalardan biri. Siz dasturni o'z noutbukingizda mukammal ishlab chiqasiz, lekin uni serverga joylashtirganingizda — u yerda boshqa Go versiyasi, boshqa operatsion tizim, yoki boshqa kutubxona borligi sababli dastur ishlamay qoladi.

Konteyner (container) — aynan shu muammoni hal qiladi. Uni sayohat qiladigan lunch-box'ga o'xshating: siz uyingizda ovqat tayyorlaysiz, uni qopqog'i mahkam yopiladigan qutiga solasiz, va uni ishxonaga olib borasiz — u yerdagi muzlatgich yoki mikroto'lqinli pech qanday bo'lishidan qat'i nazar, ovqatingiz aynan o'sha holatda, o'zgarishsiz qoladi. Konteyner ham dasturingizni, uning barcha kerakli kutubxonalari va sozlamalari bilan birga, bitta "qutiga" joylab, uni istalgan kompyuterda aynan bir xil ishlashini kafolatlaydi.

tushuncha.txt
Virtual mashina (VM):          Konteyner:
+----------------------+       +----------------------+
| Ilova A | Ilova B    |       | Ilova A | Ilova B    |
| Kutubxonalar         |       | Kutubxonalar         |
| To'liq OS (Guest)    |       +----------------------+
+----------------------+       | Docker Engine        |
| Gipervizor           |       +----------------------+
+----------------------+       | Host OS (bitta)      |
| Host OS              |       +----------------------+
+----------------------+       | Uskuna               |
| Uskuna               |       +----------------------+
+----------------------+

VM  har biriga TO'LIQ operatsion tizim kerak (og'ir, sekin ishga tushadi).
Konteyner  bitta operatsion tizim yadrosini BAHAM KO'RADI (yengil, tez).

Ko'p odamlar konteynerni "kichik virtual mashina" deb o'ylashadi, lekin bu unchalik to'g'ri emas. Virtual mashina — har biri o'zining TO'LIQ operatsion tizimiga ega, alohida "kvartira"lar kabi. Konteyner esa — bitta operatsion tizim yadrosini (kernel) barcha konteynerlar baham ko'radigan, lekin har biri o'zining fayl tizimi va jarayonlarini ko'radigan alohida "xonalar"ga o'xshaydi. Shuning uchun konteyner virtual mashinadan ancha yengil va tez ishga tushadi (soniyalar ichida, VM esa daqiqalar talab qilishi mumkin).

Docker — konteynerlar yaratish va boshqarish uchun eng mashhur vosita. Bu kursda siz Go ilovangizni Docker yordamida "qutiga solib", uni istalgan serverga, o'zgarishsiz ishlaydigan holda joylashtirishni o'rganasiz. Diqqat: bizning interaktiv o'quv muhitimiz haqiqiy Docker dvigatelini ishga tushira olmaydi (bu — alohida, to'liq operatsion tizim darajasidagi vosita), shuning uchun bu kurs darslari kod yozib, natijani o'qib chiqish (interaktiv mashqsiz) formatida bo'ladi — lekin har bir ko'rsatilgan buyruq va fayl aynan haqiqiy loyihada ishlatiladigan, to'g'ri Docker sintaksisi.

Key Takeaway

Key Takeaway:

Konteyner — dasturni barcha kerakli qismlari bilan birga "qutiga solib", uni istalgan kompyuterda bir xil ishlashini ta'minlaydi; virtual mashinadan farqli o'laroq, u operatsion tizim yadrosini baham ko'rgani uchun ancha yengil va tez.

NEXT UP

Your First Container