Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Docker

Използвам Docker ΠΎΡ‚ няколко мСсСца, Π·Π° Π΄Π° структурирам процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°/доставка Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ Π½Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Habrakhabr ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° ΡƒΠ²ΠΎΠ΄Π½Π°Ρ‚Π° статия Π·Π° docker - β€žΠ Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€β€œ.

Какво Π΅ Π΄ΠΎΠΊΠ΅Ρ€?

Docker Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅, доставянС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с прилоТСния. Docker Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° доставя Π²Π°ΡˆΠΈΡ‚Π΅ прилоТСния ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ. Π‘ docker ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚Π΅ Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π²Π°ΡˆΠ°Ρ‚Π° инфраструктура ΠΈ Π΄Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚Π΅ инфраструктурата ΠΊΠ°Ρ‚ΠΎ управлявано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Docker Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚Π΅ ΠΊΠΎΠ΄Π° си ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, Π΄Π° тСстватС ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚Π΅ прилоТСния ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ писанС Π½Π° ΠΊΠΎΠ΄ ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄. Docker ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π° Ρ‡Ρ€Π΅Π· Π»Π΅ΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° виртуализация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ процСси ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° управляватС ΠΈ доставятС Π²Π°ΡˆΠΈΡ‚Π΅ прилоТСния.

Π’ основата си Docker Π²ΠΈ позволява Π΄Π° стартиратС ΠΏΠΎΡ‡Ρ‚ΠΈ всяко ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, бСзопасно ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π‘ΠΈΠ³ΡƒΡ€Π½Π°Ρ‚Π° изолация Π²ΠΈ позволява Π΄Π° стартиратС ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ хост Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ЛСкият Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° Ρ…ΠΈΠΏΠ΅Ρ€Π²Π°ΠΉΠ·ΠΎΡ€, Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ вашия Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ инструмСнтитС Π·Π° виртуализация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π² слСднитС случаи:

  • ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅) Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ;
  • разпространСниС ΠΈ доставка Π½Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π΄ΠΎ Π²Π°ΡˆΠΈΡ‚Π΅ Π΅ΠΊΠΈΠΏΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ тСстванС;
  • поставянС Π½Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ производствСни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΠΎΠ±Π»Π°Ρ†ΠΈ.

Π—Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΠΎΠΊΠ΅Ρ€?

Π‘ΡŠΡ€Π·ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΉΡ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ прилоТСния

Docker Π΅ страхотСн Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Docker позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° стартират Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ с прилоТСния ΠΈ услуги. ΠšΠΎΠ΅Ρ‚ΠΎ впослСдствиС Π²ΠΈ позволява Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‚Π΅ с процСса Π½Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΈ работния процСс Π½Π° внСдряванС.

НапримСр Π²Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΏΠΈΡˆΠ°Ρ‚ ΠΊΠΎΠ΄ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈ сподСлят своя стСк Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Docker изобраТСния) с ΠΊΠΎΠ»Π΅Π³ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° тСстовия сайт ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ тСстовС. ΠžΡ‚ тСстовата ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΊΠΎΠ΄ ΠΈ изобраТСния към производството.

По-лСсно поставянС ΠΈ Ρ€Π°Π·Π³ΡŠΠ²Π°Π½Π΅

Π‘Π°Π·ΠΈΡ€Π°Π½Π°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° улСснява прСнасянСто Π½Π° вашия ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ²Π°Ρ€. Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° работят Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π»ΠΎΠΊΠ°Π»Π½Π° машина, Ρ€Π΅Π°Π»Π½Π° ΠΈΠ»ΠΈ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°.

ΠŸΡ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚Ρ‚Π° ΠΈ Π»Π΅ΠΊΠΎΡ‚ΠΎ СстСство Π½Π° docker улСснява Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΡ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π²ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€, Π·Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ услуги. Бкоростта Π½Π° docker позволява Ρ‚ΠΎΠ²Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

По-високи Ρ‚ΠΎΠ²Π°Ρ€ΠΈ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΈ

Docker Π΅ Π»Π΅ΠΊ ΠΈ Π±ΡŠΡ€Π·. Π’ΠΎΠΉ осигурява гъвкава, Ρ€Π΅Π½Ρ‚Π°Π±ΠΈΠ»Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° Π±Π°Π·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π½Π° Ρ…ΠΈΠΏΠ΅Ρ€Π²Π°ΠΉΠ·ΠΎΡ€ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини. Π’ΠΎΠ²Π° Π΅ особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² срСди с голямо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ свой собствСн ΠΎΠ±Π»Π°ΠΊ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ услуга. Но ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΌΠ°Π»ΠΊΠΈ ΠΈ срСдни прилоТСния, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ рСсурситС, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚Π΅.

Основни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Docker

Docker сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΄Π²Π° основни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  • Docker: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° виртуализация с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄;
  • Docker Hub: ΠΠ°ΡˆΠ°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ услуга Π·Π° разпространСниС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°! Docker сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Apache 2.0.

Π”ΠΎΠΊΠ΅Ρ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°

Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΡŠΡ€Π²ΡŠΡ€. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Docker ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° с Π΄Π΅ΠΌΠΎΠ½Π° Docker, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΅ΠΌΠ° Π±Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π΄Π° създава, изпълнява ΠΈ разпространява Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. И ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚, ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° работят Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° систСма, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° към ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°Ρ‚ Ρ‡Ρ€Π΅Π· сокСт ΠΈΠ»ΠΈ RESTful API.

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Docker

Π”ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½

ΠšΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π°, Π΄Π΅ΠΌΠΎΠ½ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° хост ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°. ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ Π½Π΅ взаимодСйства Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ със ΡΡŠΡ€Π²ΡŠΡ€Π°, Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π° Ρ‚ΠΎΠ²Π°.

Docker ΠΊΠ»ΠΈΠ΅Π½Ρ‚

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Docker, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Docker, Π΅ основният интСрфСйс Π½Π° Docker. Π’ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ потрСбитСля ΠΈ взаимодСйства с Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½Π°.

Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Π΄ΠΎΠΊΠ΅Ρ€

Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ Π΄ΠΎΠΊΠ΅Ρ€ΡŠΡ‚, трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ Π·Π° Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  • изобраТСния
  • Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€
  • ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ

ΠΎΠ±Ρ€Π°Π·ΠΈ

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Docker Π΅ шаблон само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. НапримСр, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Ubuntu с Apache ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡŠΡ€Ρ…Ρƒ нСя. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° създаванС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Docker улСснява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ изобраТСния, Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° изтСглятС изобраТСния, създадСни ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ Ρ…ΠΎΡ€Π°. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ‚Π° са ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ компилация.

Π Π΅Π³ΠΈΡΡ‚ΡŠΡ€ΡŠΡ‚

Π Π΅Π³ΠΈΡΡ‚ΡŠΡ€ΡŠΡ‚ Π½Π° Docker ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° изобраТСния. Има ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΈ частни рСгистри, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° изтСглятС ΠΈΠ»ΠΈ ΠΊΠ°Ρ‡Π²Π°Ρ‚Π΅ изобраТСния. ΠŸΡƒΠ±Π»ΠΈΡ‡Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Docker Π΅ Π”ΠΎΠΊΠ΅Ρ€ Ρ†Π΅Π½Ρ‚ΡŠΡ€. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° колСкция ΠΎΡ‚ изобраТСния. ΠšΠ°ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, изобраТСнията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ създадСни ΠΎΡ‚ вас ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ изобраТСния, създадСни ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ. РСгистритС са ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π° разпространСниС.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ всичко, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. ВсСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΅ създадСн ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚, стартират, спират, ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚. ВсСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΈ осигурява сигурна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ са ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°.

И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Docker?

ДосСга Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅:

  • ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създавамС изобраТСния, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π½Π°ΡˆΠΈΡ‚Π΅ прилоТСния;
  • ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създавамС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΎΡ‚ изобраТСния Π·Π° стартиранС Π½Π° прилоТСния;
  • МоТСм Π΄Π° разпространявамС изобраТСния Ρ‡Ρ€Π΅Π· Docker Hub ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° изобраТСния.

НСка Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ сС вписват Π·Π°Π΅Π΄Π½ΠΎ.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ?

Π’Π΅Ρ‡Π΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ шаблон само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ сС създава ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Всяко ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π½ΠΈΠ²Π°. Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π·Π° Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ Π½ΠΈΠ²Π° Π² Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠžΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма позволява Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми (Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅) Π΄Π° сС ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ, създавайки ΡΡŠΠ³Π»Π°ΡΡƒΠ²Π°Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма.

Π•Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ docker Π΅ Π»Π΅ΠΊ Π΅, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° слоСвС ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, сС създава Π½ΠΎΠ² слой. Π’Π°ΠΊΠ° Ρ‡Π΅, Π±Π΅Π· Π΄Π° замСнятС цялото ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ Π½Π°Π½ΠΎΠ²ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, само слоят сС добавя ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°. И Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° разпространяватС цялото Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, разпространява сС само актуализацията, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ разпространСниСто Π½Π° изобраТСния ΠΏΠΎ-лСсно ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

Π’ основата Π½Π° всяко ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ стои основно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НапримСр ubuntu, Π±Π°Π·ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ubuntu, ΠΈΠ»ΠΈ fedora, основното ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° дистрибуцията Π½Π° Fedora. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ изобраТСния ΠΊΠ°Ρ‚ΠΎ основа Π·Π° създаванС Π½Π° Π½ΠΎΠ²ΠΈ изобраТСния. НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° apache, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ основно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΡƒΠ΅Π± прилоТСния.

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°! Docker ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ изтСгля изобраТСния ΠΎΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Docker Hub.

Docker изобраТСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ създадСни ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π±Π°Π·ΠΎΠ²ΠΈ изобраТСния; Π½ΠΈΠ΅ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ ΡΡ‚ΡŠΠΏΠΊΠΈΡ‚Π΅ Π·Π° създаванС Π½Π° Ρ‚Π΅Π·ΠΈ изобраТСния инструкции. Всяка инструкция създава Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΠ²ΠΎ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ слСднитС:

  • ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° изпълнСниС
  • добавянС Π½Π° Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ дирСктория
  • създаванС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата
  • инструкции ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС изпълни, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС стартира ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Π’Π΅Π·ΠΈ инструкции сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ във Ρ„Π°ΠΉΠ» Dockerfile. Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Π΅Ρ‚Π΅ Ρ‚ΠΎΠ²Π° Dockerfile, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, изпълнява Ρ‚Π΅Π·ΠΈ инструкции ΠΈ Π²Ρ€ΡŠΡ‰Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ докСрският Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€?

Π Π΅Π³ΠΈΡΡ‚ΡŠΡ€ΡŠΡ‚ Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Π΄ΠΎΠΊΠ΅Ρ€ изобраТСния. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ бъдС създадСно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚Π΅ Π² публичния Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Docker Hub ΠΈΠ»ΠΈ във вашия Π»ΠΈΡ‡Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€.

Π‘ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ изобраТСния ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π΄ΠΎΠΊΠ΅Ρ€ машина, Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Docker Hub прСдоставя ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΈ частни Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π·Π° изобраТСния. Π’ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ ΠΈ изтСглянСто Π½Π° изобраТСния ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ Π·Π° всички. Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° частнитС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ. И само Π²ΠΈΠ΅ ΠΈ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ изобраТСния ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΎΡ‚ тях.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€?

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, потрСбитСлски Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ Π·Π½Π°Π΅ΠΌ, всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΅ създадСн ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π·Π²Π° Π½Π° Docker ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, какъв процСс Π΄Π° стартира, ΠΊΠΎΠ³Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ стартира ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Docker Π΅ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ docker стартира ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‚ΠΎΠΉ създава слой Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅/запис Π² Π³ΠΎΡ€Π½Π°Ρ‚Π° част Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, ΠΊΠ°ΠΊΡ‚ΠΎ бСшС посочСно ΠΏΠΎ-Π³ΠΎΡ€Π΅), Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Какво сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π½Π΅?

Или с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° docker, ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ RESTful API, Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΊΠ°Π·Π²Π° Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½Π° Π΄Π° стартира ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

$ sudo docker run -i -t ubuntu /bin/bash

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ сС стартира с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° docker, с опция run, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Ρ‰Π΅ бъдС пуснат Π½ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠœΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ изисквания Π·Π° стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ са слСднитС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ:

  • ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π·Π° създаванС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ нашия случай ubuntu
  • ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°, която искатС Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ нашия случай /bin/bash

Какво сС случва ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ изпълним Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°?

Docker, ΠΏΠΎ Ρ€Π΅Π΄, ΠΏΡ€Π°Π²ΠΈ слСдното:

  • изтСгля ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ubuntu: docker провСрява Π·Π° наличност Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ubuntu Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° машина ΠΈ Π°ΠΊΠΎ Π½Π΅ Π΅ Ρ‚Π°ΠΌ, ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ Π³ΠΎ ΠΎΡ‚ Π”ΠΎΠΊΠ΅Ρ€ Ρ†Π΅Π½Ρ‚ΡŠΡ€. Ако ΠΈΠΌΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° създаванС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€;
  • създава ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€: ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ, Π΄ΠΎΠΊΠ΅Ρ€ΡŠΡ‚ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° създадС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€;
  • ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅: ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ сС създава във Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС добавя към Π½ΠΈΠ²ΠΎΡ‚ΠΎ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅;
  • ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°/моста: създава ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π½Π° Π΄ΠΎΠΊΠ΅Ρ€Π° Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° с хост ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°;
  • Π—Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° IP адрСс: Π½Π°ΠΌΠΈΡ€Π° ΠΈ Π·Π°Π΄Π°Π²Π° адрСса;
  • Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π° посочСния процСс: стартира Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΈΠ·Ρ…ΠΎΠ΄ ΠΎΡ‚ Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΡΠ²ΡŠΡ€Π·Π²Π° ΠΈ рСгистрира стандартния Π²Ρ…ΠΎΠ΄, ΠΈΠ·Ρ…ΠΎΠ΄ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° прослСдяватС ΠΊΠ°ΠΊ сС прСдставя Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° управляватС вашия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π΄Π° взаимодСйстватС с Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° спрСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΈΠ·Ρ‚Ρ€ΠΈΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Използвани Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Docker Π΅ написан Π½Π° Go ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ядрото Π½Π° Linux, Π·Π° Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π³ΠΎΡ€Π½Π°Ρ‚Π° функционалност.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°

Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° тСхнология namespaces Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ пространства, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ стартирамС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, docker създава Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Π’ΠΎΠ²Π° създава ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ слой, ΠΊΠ°Ρ‚ΠΎ всСки аспСкт Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² собствСното си пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈ няма Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π²ΡŠΠ½ΡˆΠ½Π°Ρ‚Π° систСма.

Бписък Π½Π° някои пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠΈΡ‚ΠΎ Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°:

  • pid: ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° процСса;
  • Π½Π΅Ρ‚ΠΎ: Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ интСрфСйси;
  • ipc: Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурситС Π½Π° IPC. (ICP: ΠœΠ΅ΠΆΠ΄ΡƒΠΏΡ€ΠΎΡ†Π΅ΡΠ½Π° комуникация);
  • mnt: Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅;
  • utc: Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ядрото ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° вСрсия (UTC: Unix систСма Π·Π° сподСлянС Π½Π° Π²Ρ€Π΅ΠΌΠ΅).

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Π³Ρ€ΡƒΠΏΠΈ

Docker ΡΡŠΡ‰ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° тСхнология cgroups ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Π³Ρ€ΡƒΠΏΠΈ. ΠšΠ»ΡŽΡ‡ΡŠΡ‚ към ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² изолация Π΅ Π΄Π° прСдоставитС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ само рСсурситС, ΠΊΠΎΠΈΡ‚ΠΎ искатС Π΄Π° прСдоставитС. Π’ΠΎΠ²Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠ±Ρ€ΠΈ съсСди. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΈ Π²ΠΈ позволяват Π΄Π° сподСлятС Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ рСсурси ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ Π»ΠΈΠΌΠΈΡ‚ΠΈ ΠΈ ограничСния. НапримСр, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Ρ‚Π΅ възмоТния ΠΎΠ±Π΅ΠΌ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ОбСдинСна Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма

Union File Sysem ΠΈΠ»ΠΈ UnionFS Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, която Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‡Ρ€Π΅Π· създаванС Π½Π° слоСвС, ΠΊΠΎΠ΅Ρ‚ΠΎ я ΠΏΡ€Π°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΠΊΠ° ΠΈ Π±ΡŠΡ€Π·Π°. Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° UnionFS, Π·Π° Π΄Π° създадС Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚. Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° няколко Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° UnionFS, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ: AUFS, btrfs, vfs ΠΈ DeviceMapper.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ

Docker ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π² ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°, която Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° libcontainer. Docker ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° традиционния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° LXC. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. НапримСр ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅ с BSD Jails ΠΈΠ»ΠΈ Solaris Zones.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€