Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ВсС процСссы Π² Π½Π΅ΠΉ ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‡Ρ‚ΠΎ позволяСт сущСствСнно ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с прилоТСниями.

Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных инструмСнтов для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся Docker β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ срСдство управлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Он Ρ€Π΅ΡˆΠ°Π΅Ρ‚ мноТСство Π·Π°Π΄Π°Ρ‡, связанных с созданиСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ процСссами, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСстированиСм ПО ΠΈ Π΅Π³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, описано Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker

Docker (Π”ΠΎΠΊΠ΅Ρ€) β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, примСняСмоС для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, тСстирования, доставки ΠΈ запуска Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСдах с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Он Π½ΡƒΠΆΠ΅Π½ для Π±ΠΎΠ»Π΅Π΅ эффСктивного использованиС систСмы ΠΈ рСсурсов, быстрого развСртывания Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ пСрСноса Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСды с Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ сохранСниСм ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Docker Π±Ρ‹Π»Π° Π½Π°Ρ‡Π°Ρ‚Π° Π² 2008 Π³ΠΎΠ΄Ρƒ, Π° Π² 2013 Π³ΠΎΠ΄Ρƒ ΠΎΠ½ Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ свободно распространяСмоС ПО ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π’ качСствС тСстового прилоТСния Docker Π±Ρ‹Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² дистрибутив Red Hat Enterprise Linux 6.5. Π’ 2017 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° коммСрчСская вСрсия Docker с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями.

Docker Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Linux, ядро ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ cgroups, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ пространства ΠΈΠΌΠ΅Π½. Для инсталляции ΠΈ использования Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Linux, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Kitematic ΠΈΠ»ΠΈ Docker Machine.

Основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Docker β€” контСйнСризация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ позволяСт ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ срСдам β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² содСрТит всС Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ запуска большого количСства ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ хостС.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах: локальном Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΎΠ±Π»Π°ΠΊΠ΅, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈ Ρ‚. Π΄.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования Docker

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Docker

Для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Docker, Π΅Π³ΠΎ основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker Engine

Docker Engine (Β«Π”Π²ΠΈΠΆΠΎΠΊΒ» Docker) β€” ядро ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π”ΠΎΠΊΠ΅Ρ€Π°. Β«Π”Π²ΠΈΠΆΠΎΠΊΒ» ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ обСспСчСниС связи ΠΌΠ΅ΠΆΠ΄Ρƒ основными Docker-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (рССстром, ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ).

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Docker Engine

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Docker

Π Π°Π±ΠΎΡ‚Π° Docker основана Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, которая основана Π½Π° взаимодСйствии ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с Π²Π΅Π±-сСрвСром (хостом). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ отправляСт запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΡ… прСдоставляСт.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π·Ρ‹

Docker-image β€” шаблон Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния (read-only) с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инструкций, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Он состоит ΠΈΠ· слоСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Docker ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы UnionFS. Π’Π°ΠΊ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования дисковой памяти. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±Ρ€Π°Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Docker-file.

Для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ примСнСния Docker-image слСдуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рССстром ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈΠ»ΠΈ Π”ΠΎΠΊΠ΅Ρ€-рССстром (Docker-registry), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ Π·Π°ΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ с внСшнСго рСпозитория сСрвиса ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² рССстрС Π”ΠΎΠΊΠ΅Ρ€-хоста. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ рССстр ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Docker Trusted Registry (DTR).

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Если трСбуСтся Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ слои. НапримСр, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΡˆΠΈΠ» Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сСрвСр Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ слои, содСрТащиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ строится Π½Π° основС Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ². ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux. Благодаря этому, ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС рСсурсов, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ namespace. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пространства (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°) создаСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ обСспСчиваСт ΠΊ Π½Π΅ΠΌΡƒ доступ. Π›ΡŽΠ±ΠΎΠΉ процСсс, выполняСмый Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ограничиваСтся namespace.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π’ ОБ Linux посрСдством Docker Engine ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ другая тСхнология β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ (cgroups). ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ограничиваСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ рСсурсов. Π‘groups ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΎΠ±ΠΌΠ΅Π½ доступных Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ограничСния (использованиС памяти, ΠΏΡ€Π°Π² доступа ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ рСсурсу ΠΈ Ρ‚. Π΄.).

Π”Π²ΠΈΠΆΠΎΠΊ Docker ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ пространство ΠΈΠΌΠ΅Π½ (namespace), ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ (cgroups) ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму (UnionFS) Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ планируСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² посрСдством ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ BSD Jails ΠΈΠ»ΠΈ Solaris Zones.

Π§Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Docker Compose

Для управлСния нСсколькими ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ β€” Docker Compose.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Он примСняСтся Π½Π΅ Π²ΠΎ всСх случаях. Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ являСтся простым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ использования сторонних сСрвисов, Ρ‚ΠΎ для Π΅Π³ΠΎ развСртывания ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Docker. Docker Compose рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Π² сСбя мноТСство процСссов ΠΈ сСрвисов.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ возмоТностях ΠΈ практикичСской сторонС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Docker Compose ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ здСсь.

Docker Swarm

ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ хостов Π² кластСр Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ кластСризации Docker Swarm. Π₯ост, находящийся Π² Π΅Π³ΠΎ составС, называСтся Β«ΡƒΠ·Π»ΠΎΠΌΒ» (node), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ. Один кластСр содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Β«ΡƒΠ·Π΅Π»Β».

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

НСкоторыС возмоТности ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Docker примСняСтся Π²ΠΎ мноТСствС сфСр β€” ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…, Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с микросСрвисами, основанных Π½Π° распрСдСлСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π”ΠΎΠΊΠ΅Ρ€ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ².

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Docker являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтом для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ соврСмСнного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠ°ΠΊ основа Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚Π° тСхнология ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΈ возмоТностями для контроля процСссов. Π”ΠΎΠΊΠ΅Ρ€ позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π½ΠΎ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… экзСмпляры, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌΠΈ прилоТСниями (Docker Compose), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ нСсколько Π”ΠΎΠΊΠ΅Ρ€-хостов Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ кластСр (Docker Swarm).

Π”ΠΎΠΊΠ΅Ρ€ характСризуСтся достаточно простым синтаксисом. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ довольно прост Π² освоСнии ΠΊΠ°ΠΊ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… IT-спСциалистов, Ρ‚Π°ΠΊ ΠΈ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС совмСстимо со всСми вСрсиями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Linux ΠΈ Windows, поэтому ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния Docker практичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° 100%, Docker Π½ΡƒΠΆΠ½Π° подходящая рабочая срСда. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” VPS ΠΎΡ‚ Eternalhost. ΠœΠΎΡ‰Π½Ρ‹Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сСрвСра с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ быстрого ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ рСсурсов!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Понимая Docker

Π£ΠΆΠ΅ нСсколько мСсяцСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ docker для структуризации процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ/доставки Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ читатСлям Β«Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€Π°Β» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎ docker β€” Β«Understanding dockerΒ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄ΠΎΠΊΠ΅Ρ€?

Π”ΠΎΠΊΠ΅Ρ€ β€” это открытая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, доставки ΠΈ эксплуатации ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Docker Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Π±ΠΎΠ»Π΅Π΅ быстрого выкладывания Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ docker Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ вашСй инфраструктуры ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с инфраструктурой ΠΊΠ°ΠΊ управляСмым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Docker ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ быстрСС, быстрСС Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, быстрСС Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ написаниСм ΠΊΠΎΠ΄Π° ΠΈ запуска ΠΊΠΎΠ΄Π°. Docker Π΄Π΅Π»Π°Π΅Ρ‚ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ лСгковСсной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ процСссы ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ваши прилоТСния.

Π’ своСм ядрС docker позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ практичСски любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, бСзопасно ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. БСзопасная изоляция позволяСт Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ хостС ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ЛСгковСсная ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°, позволяСт Π²Π°ΠΌ Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚ΡŒΡΡ большС ΠΎΡ‚ вашСго ΠΆΠ΅Π»Π΅Π·Π°.

Для Ρ‡Π΅Π³ΠΎ я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ docker?

БыстроС Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Docker прСкрасно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Docker позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с прилоТСниями ΠΈ сСрвисами. Π§Ρ‚ΠΎ Π² послСдствии позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с процСссом постоянной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ выкладывания (continuous integration and deployment workflow).

НапримСр, ваши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠΎΠ΄ локально ΠΈ дСлятся своим стСком Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π½Π°Π±ΠΎΡ€ΠΎΠΌ docker ΠΎΠ±Ρ€Π°Π·ΠΎΠ²) с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ. Когда ΠΎΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, ΠΎΡ‚Ρ€Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π° Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π»ΡŽΠ±Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ тСсты. Π‘ тСстовой ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ‹ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½.

Π‘ΠΎΠ»Π΅Π΅ простоС Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅

Основанная Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… docker ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позволят Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° вашСй локальной машинС, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°ΠΊ ΠΈ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π² Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚Ρ€Π΅, Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ лСгковСсная ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° docker позволяСт Π»Π΅Π³ΠΊΠΎ динамичСски ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ вашСй Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ docker, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ³Π°ΡΠΈΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ сСрвисы. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ docker позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ВысокиС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ большС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ

Docker лСгковСсСн ΠΈ быстр. Он прСдоставляСт ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΡƒΡŽ, Ρ€Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ машинам Π½Π° основС Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°. Он особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² условиях высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ создания собствСнного ΠΎΠ±Π»Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°-ΠΊΠ°ΠΊ-сСрвис (platform-as-service). Но ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΈ срСдних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ хочСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ большС ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ рСсурсов.

Π“Π»Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Docker

АрхитСктура Docker

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

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Docker-Π΄Π΅ΠΌΠΎΠ½

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, Π΄Π΅ΠΌΠΎΠ½ Π·Π° пускаСтся Π½Π° хост-машинС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ взаимодСйствуСт с сСрвСром Π½Π° ΠΏΡ€ΡΠΌΡƒΡŽ, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для этого ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

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

Docker-ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° docker β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ интСрфСйс ΠΊ Docker. Она ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ взаимодСйствуСт с docker-Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ docker-Π°

ΠžΠ±Ρ€Π°Π·Ρ‹

Docker-ΠΎΠ±Ρ€Π°Π· β€” это read-only шаблон. НапримСр, ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΡƒ Ubuntu c Apache ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π½Π΅ΠΉ. ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Docker позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ созданныС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми. ΠžΠ±Ρ€Π°Π·Ρ‹ β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° сборки docker-Π°.

РССстр

Docker-рССстр Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π·Ρ‹. Π•ΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ рССстры, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Docker-рССстр β€” это Docker Hub. Π’Π°ΠΌ хранится огромная коллСкция ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ созданныС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. РССстры β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° распространСния.

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

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π’ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… содСрТится всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ создаСтся ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π°. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы, Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, остановлСны, пСрСнСсСны ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ являСтся бСзопасной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для прилоТСния. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Docker?

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

ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π· β€” это read-only шаблон, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ создаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Docker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ union file system для сочСтания этих ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π·. Union file system позволяСт Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ дирСкториями ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм (Ρ€Π°Π·Π½Ρ‹ΠΌ вСтвям) ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ, создавая ΠΊΠΎΠ³Π΅Ρ€Π΅Π½Ρ‚Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму.

Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ docker лСгковСсСн β€” это использованиС Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Когда Π²Ρ‹ измСняСтС ΠΎΠ±Ρ€Π°Π·, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, обновляСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π’Π°ΠΊ, Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ‹ всСго ΠΎΠ±Ρ€Π°Π·Π° ΠΈΠ»ΠΈ Π΅Π³ΠΎ пСрСсборки, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ придётся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ добавляСтся ΠΈΠ»ΠΈ обновляСтся. И Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π°Π²Π°Ρ‚ΡŒ вСсь Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, раздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ быстрСС.

Π’ основС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° находится Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·. НапримСр, ubuntu, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· Ubuntu, ΠΈΠ»ΠΈ fedora, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· дистрибутива Fedora. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠ°ΠΊ Π±Π°Π·Ρƒ для создания Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ². НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· apache, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· для Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅! Docker ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Π΅Ρ€Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈΠ· рССстра Docker Hub.

Docker ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒΡΡ ΠΈΠ· этих Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ², шаги описания для создания этих ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ инструкциями. КаТдая инструкция создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΈΠ»ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ docker рССстр?

РССстр β€” это Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ docker ΠΎΠ±Ρ€Π°Π·ΠΎΠ². ПослС создания ΠΎΠ±Ρ€Π°Π·Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ рССстрС Docker Hub ΠΈΠ»ΠΈ Π½Π° вашСм Π»ΠΈΡ‡Π½ΠΎΠΌ рССстрС.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ docker ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π²Π°ΡˆΡƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с docker для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Docker Hub прСдоставляСт ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Поиск ΠΈ скачиваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈΠ· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ доступно для всСх. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΈ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ эти ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

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

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ состоит ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Как ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ создаСтся ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π°. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π· Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ docker-Ρƒ, Ρ‡Ρ‚ΠΎ находится Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, ΠΊΠ°ΠΊΠΎΠΉ процСсс Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° запускаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Docker ΠΎΠ±Ρ€Π°Π· доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Когда docker запускаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΎΠ½ создаСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ для чтСния/записи свСрху ΠΎΠ±Ρ€Π°Π·Π° (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ union file system, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° запускаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€?

Π§Ρ‚ΠΎ ΠΆΠ΅ происходит ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запускаСм эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π”ΠΎΠΊΠ΅Ρ€ написан Π½Π° Go ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности ядра Linux, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

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

Docker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ namespaces для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… пространств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Когда ΠΌΡ‹ запускаСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, docker создаСт Π½Π°Π±ΠΎΡ€ пространств ΠΈΠΌΠ΅Π½ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π­Ρ‚ΠΎ создаСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ аспСкт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² своСм простанствС ΠΈΠΌΠ΅Π½, ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ внСшнСй систСмС.

Control groups (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹)

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

Union File System

Union File Sysem ΠΈΠ»ΠΈ UnionFS β€” это файловая систСма, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ создавая ΡƒΡ€ΠΎΠ²Π½ΠΈ, дСлая Π΅Π΅ ΠΎΡ‡Π΅Π½ΡŒ лСгковСсной ΠΈ быстрой. Docker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ UnionFS для создания Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строится ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Docker ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² UnionFS Π²ΠΊΠ»ΡŽΡ‡Π°Ρ: AUFS, btrfs, vfs ΠΈ DeviceMapper.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ Docker, Ρ‡Π°ΡΡ‚ΡŒ 1: основы

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нашли ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² сфСрах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прилоТСния Π±ΠΎΠ»Π΅Π΅ бСзопасными, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΈΡ… Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ возмоТности ΠΏΠΎ ΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Рост ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ² соврСмСнности.

Docker β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, которая ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, развёртывания ΠΈ запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. Π‘Π»ΠΎΠ²ΠΎ Β«DockerΒ» Π² послСднСС врСмя стало Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ синонима слова «контСйнСризация». И Ссли Π²Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Docker, Π½ΠΎ ΠΏΡ€ΠΈ этом Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² сфСрах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Docker β€” это Ρ‚ΠΎ, с Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Если Π²Ρ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker, сСйчас Ρƒ вас Π΅ΡΡ‚ΡŒ шанс ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΊ пониманию этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. А ΠΈΠΌΠ΅Π½Π½ΠΎ, освоив этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Π²Ρ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘Ρ‚Π΅ΡΡŒ с основами Docker ΠΈ ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΈΡ†Ρ†Ρƒ.

ΠœΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ ΠΈ Docker

ΠœΡ‹ постоянно сталкиваСмся с ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π°ΠΌΠΈ. Если Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ОТСгова, Ρ‚ΠΎ окаТСтся, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° β€” это «скрытоС ΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ сравнСниС, ΡƒΠΏΠΎΠ΄ΠΎΠ±Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°, явлСния Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒΒ». ΠœΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΡƒΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΡƒΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… для нас явлСний. НапримСр, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ пластиковыми ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Π’Π°ΠΊΠΎΠ΅ сравнСниС, Ρ‡Π΅Ρ€Π΅Π· сопоставлСниС ΡƒΠΆΠ΅ извСстных Π½Π°ΠΌ свойств ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² со свойствами Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ сначала с Π½ΠΈΠΌΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡ… ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ.

Как Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΌΡ‹ собираСмся Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎ Docker с понятия Β«ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Β».

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

Как ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ пластиковый ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ характСристиками:

Π–ΠΈΠ²Ρ‹Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΡ‹

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡΠΌ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Docker Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² сравнСнии ΠΈΡ… с экзСмплярами ΠΆΠΈΠ²Ρ‹Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠΎΠ². «ЭкзСмпляр» β€” это Π½Π΅Ρ‡Ρ‚ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π² Π½Π΅ΠΊΠΎΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Π­Ρ‚ΠΎ Π½Π΅ просто ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стал ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ сущСствования Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ большСго, Ρ‡Π΅ΠΌ ΠΎΠ½ сам, Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, ΠΎΠ±Ρ€Π°Π·Π½ΠΎ говоря, ΠΆΠΈΠ²ΠΎΠ³ΠΎ. Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΡ‹, экзСмпляры ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° свСт, ΠΆΠΈΠ²ΡƒΡ‚ ΠΈ ΡƒΠΌΠΈΡ€Π°ΡŽΡ‚.

ΠœΠΎΠ½ΡΡ‚Ρ€, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ ΠΊ ΠΆΠΈΠ·Π½ΠΈ

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker β€” это Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΊ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ‹ Docker.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ с ΠΆΠΈΠ²Ρ‹ΠΌΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. И, Π½Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ прСдставляСт собой Π½Π°Π±ΠΎΡ€ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π½Π° Π½Π΅ΠΊΠΎΠ΅ΠΌ процСссорС, обрабатывая ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Π’ΠΎ врСмя выполнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся какая-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Она выполняСт Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π½Π΅ΠΊΠΈΠ΅ дСйствия, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅.

НапримСр, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Docker, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ‚ΠΎΡ‚ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ сСйчас Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Docker, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ голосовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π°Ρ‘Ρ‚Π΅ Amazon Alexa, ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² инструкции для Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΈΡ…-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ….

Благодаря использованию Docker ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ мноТСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². И, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ. МоТно ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… содСрТимоС ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ….

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Docker

β–Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

ΠŸΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker Π±Ρ‹Π»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚ внСшнСй срСды ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ зависимости. Однако ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ прСимущСствами ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами. Π’Π°ΠΊ, ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ мСньшС рСсурсов, ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ, ΠΎΠ½ΠΈ быстрСС Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ приходят Π² работоспособноС состояниС. Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ сравнСниС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин.

β–ΠžΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎΠ± Β«ΠΎΠ±Ρ€Π°Π·Π°Ρ…Β». Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ вопрос. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Docker называСтся Β«ΠΎΠ±Ρ€Π°Π·ΠΎΠΌΒ», ΠΈΠ»ΠΈ, ΠΏΠΎ-английски, Β«imageΒ», это совсСм Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, фотография (это β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ слова Β«imageΒ»).

ΠžΠ±Ρ€Π°Π·Ρ‹ Docker β€” это Π½Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ

ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ, с Ρ„ΠΎΡ€ΠΌΠΎΡ‡ΠΊΠ°ΠΌΠΈ для ΠΏΠ΅Ρ‡Π΅Π½ΡŒΡ, ΠΈΠ»ΠΈ с прСсс-Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ для изготовлСния пластиковых ΠΈΠ·Π΄Π΅Π»ΠΈΠΉ. ΠžΠ±Ρ€Π°Π·Ρ‹ β€” это Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠΎΡ‡ΠΊΠΈ для ΠΏΠ΅Ρ‡Π΅Π½ΡŒΡ

Π’ ΠΎΠ±Ρ€Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker содСрТится ΠΎΠ±Ρ€Π°Π· Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΊΠΎΠ΄ прилоТСния, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ зависит. Всё это скомпоновано Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ сущности, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

▍Ѐайл Dockerfile

Π€Π°ΠΉΠ» Dockerfile содСрТит Π½Π°Π±ΠΎΡ€ инструкций, слСдуя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Docker Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит описаниС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой исходный слой ΠΎΠ±Ρ€Π°Π·Π°. Π‘Ρ€Π΅Π΄ΠΈ популярных ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ python, ubuntu, alpine.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² ΠΎΠ±Ρ€Π°Π·Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ, ΠΏΠΎΠ²Π΅Ρ€Ρ… всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΎΠ½ΠΊΠΈΠΉ слой, Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‚ΡΡ измСнСнию. Π­Ρ‚ΠΎ β€” нСбольшой ΠΏΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΡƒ слой, содСрТащий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ планируСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

β–ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker

▍РСпозиторий ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ людям ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π° основС вашСго ΠΎΠ±Ρ€Π°Π·Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот ΠΎΠ±Ρ€Π°Π· Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π‘Π°ΠΌΡ‹ΠΌ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ являСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Docker Hub. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Docker ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠœΡ‹ ΡƒΠΆΠ΅ довольно ΠΌΠ½ΠΎΠ³ΠΎ всСго обсудили. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всё это вмСстС ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker с ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡ†Ρ†Ρ‹.

Π“ΠΎΡ‚ΠΎΠ²ΠΈΠΌ с Docker

Готовая ΠΏΠΈΡ†Ρ†Π° β€” это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Π”ΡƒΡ…ΠΎΠ²ΠΊΠ° β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Docker

Π”ΡƒΡ…ΠΎΠ²ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ готовится ΠΏΠΈΡ†Ρ†Π°, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Docker. Π”ΡƒΡ…ΠΎΠ²ΠΊΡƒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π° ΠΊΡƒΡ…Π½Π΅, с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΄Ρƒ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Docker ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΒ» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

Π”ΡƒΡ…ΠΎΠ²ΠΊΡƒ, Ссли ΠΎΠ½Π° элСктричСская, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚, поворачивая Ρ€ΡƒΡ‡ΠΊΡƒ рСгулятора Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. Команда docker run image_name β€” это Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ рСгулятора Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Β«ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Β» ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ систСма создаёт ΠΈ запускаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Готовая ΠΏΠΈΡ†Ρ†Π° β€” это ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker.

А Π΅ΡΡ‚ΡŒ ΠΏΠΈΡ†Ρ†Ρƒ β€” Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

Как ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ†Ρ†Ρ‹, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½ΠΎ Π² Ρ„ΠΈΠ½Π°Π»Π΅ ΠΈ Π² Ρ‚ΠΎΠΌ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ случаях получаСтся Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ вкусноС.

Π˜Ρ‚ΠΎΠ³ΠΈ

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹, Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, рассмотрСли основы Docker. НадССмся, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ здСсь сравнСния ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker, ΠΈ ΠΎΡ‰ΡƒΡ‚ΠΈΡ‚ΡŒ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ Π² Π΄Π΅Π»Π΅ освоСния Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Π­Ρ‚Π° публикация прСдставляСт собой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· сСрии ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Docker. По словам Π°Π²Ρ‚ΠΎΡ€Π°, всСго планируСтся Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 5 Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ². Π£ΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ вторая, Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΈ чСтвёртая части. ΠŸΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΌ, стоит Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ этой сСрии?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказываСм

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎ косточкам, вСдь Docker – это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ вряд Π»ΠΈ умСстится Π² Π±Ρ€ΠΎΡˆΡŽΡ€ΠΊΡƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker?

Π­Ρ‚ΠΎ ПО с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с транспортными ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Волько ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, вСдь ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ транспортныС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ·ΠΈΡ‚ΡŒ вмСстС ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈ ΠΈ стСкло, Ρ…ΠΈΠΌΠΈΠΊΠ°Ρ‚Ρ‹ ΠΈ Π΅Π΄Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π“Ρ€ΡƒΠ· Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ распрСдСлСн ΠΏΠΎ стандартизированным ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ/Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ транспортным срСдством.

Но вСрнСмся ΠΆΠ΅ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ. Когда Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ вмСстС со всСми Π΅Π³ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, сСрвСр, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½ΠΎ отказываСтся Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° устройствС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· созданиС нСзависимости ПО ΠΎΡ‚ систСмы.

Π’ Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ?

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ виртуализация Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ сущСствСнныС нСдостатки:

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π”ΠΎΠΊΠ΅Ρ€ ΠΆΠ΅ просто раздСляСт ядро ОБ Π½Π° всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ (Docker container), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы. Π­Ρ‚ΠΎ Π½Π΅ СдинствСнная подобная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π½ΠΎ, бСсспорно, ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных ΠΈ вострСбованных.

КакиС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΠ»ΡŽΡΡ‹?

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

К Π΅Π³ΠΎ прСимущСствам относятся:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Π”ΠΎΠΊΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΅Π³ΠΎ Ρ€ΠΎΠ΄Π½ΠΎΠΉ ОБ, Linux, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся Windows ΠΈ macOS. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ взаимодСйствия с Linux Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° macOS ΠΈ Windows ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° инкапсулируСтся Π² ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π”ΠΎΠΊΠ΅Ρ€ для macOS ΠΈ Windows достиг Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня удобства Π² использовании.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт мноТСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Kitematic ΠΈΠ»ΠΈ Docker Machine, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π”ΠΎΠΊΠ΅Ρ€ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Linux.

Установка

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ установкС. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π”ΠΎΠΊΠ΅Ρ€ΠΎΠΌ Π½Π° ОБ Linux, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько нСслоТных дСйствий ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² систСму:

ВСрминология

1. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ – это исполняСмый экзСмпляр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ инкапсулируСт Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. Он состоит ΠΈΠ· ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ снова ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

2. ΠžΠ±Ρ€Π°Π· – Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ элСмСнт ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ зависимости ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π·Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя для Π΅Π³ΠΎ создания.

3. ΠŸΠΎΡ€Ρ‚ – это ΠΏΠΎΡ€Ρ‚ TCP/UDP Π² своСм ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ всС Π±Ρ‹Π»ΠΎ просто, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π²ΠΎ внСшнСм ΠΌΠΈΡ€Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ (доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· этих ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ для внСшнСго ΠΌΠΈΡ€Π°).

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

4. Π’ΠΎΠΌ – описываСтся ΠΊΠ°ΠΊ общая ΠΏΠ°ΠΏΠΊΠ°. Π’ΠΎΠΌΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для сохранСния Π΄Π°Π½Π½Ρ‹Ρ…, нСзависимо ΠΎΡ‚ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

5. РССстр – это сСрвСр, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΎΠ±Ρ€Π°Π·Ρ‹. Π‘Ρ€Π°Π²Π½ΠΈΠΌ Π΅Π³ΠΎ с GitHub: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΈΠ· рССстра, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ локально, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ локально ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² рССстр созданныС ΠΎΠ±Ρ€Π°Π·Ρ‹.

6. Docker Hub – ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с интСрфСйсом, прСдоставляСмый Π”ΠΎΠΊΠ΅Ρ€ Inc. Он Ρ…Ρ€Π°Π½ΠΈΡ‚ мноТСство ΠΎΠ±Ρ€Π°Π·ΠΎΠ². РСсурс являСтся источником Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ…Β» ΠΎΠ±Ρ€Π°Π·ΠΎΠ², сдСланных ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π”ΠΎΠΊΠ΅Ρ€ ΠΈΠ»ΠΈ созданных Π² сотрудничСствС с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ПО. Для ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² пСрСчислСны ΠΈΡ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ уязвимости. Π­Ρ‚Π° информация ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° для любого зарСгистрированного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Доступны ΠΊΠ°ΠΊ бСсплатныС, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹.

Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π”ΠΎΠΊΠ΅Ρ€ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Hello World

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π» послС окончания сСанса, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ Β«Π΄Π΅ΠΌΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ»:

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚:

ps ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€-Π΄Π΅ΠΌΠΎΠ½ прямо сСйчас:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановим ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€-Π΄Π΅ΠΌΠΎΠ½:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π΅Π³ΠΎ остановку:

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ остановлСн. Π”Π°Π²Π°ΠΉΡ‚Π΅ запустим Π΅Π³ΠΎ снова:

УбСдимся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π·Π°ΠΏΡƒΡ‰Π΅Π½:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ остановим Π΅Π³ΠΎ ΠΈ ΡƒΠ΄Π°Π»ΠΈΠΌ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Nginx

Начиная с этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π²Π°ΠΌ понадобятся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ссылкС.

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Nginx.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° examples/nginx:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ этот URL-адрСс Π² своСм Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π•Ρ‰Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ /example/nginx/index.html (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/share/nginx/html Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°) ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ test-nginx:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± установкС Π”ΠΎΠΊΠ΅Ρ€. Она Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ ядра, количСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: запись Dockerfile

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·, спСрва Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Dockerfile: это тСкстовый Ρ„Π°ΠΉΠ» с инструкциями ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π‘ΠΎΠ»Π΅Π΅ подробная информация здСсь.

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΎΠ±Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ содСрТимоС сайта ΠΈ сохранит Π΅Π³ΠΎ Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ URL-адрСс Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ SITE_URL. Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, установлСнный ΠΊΠ°ΠΊ Ρ‚ΠΎΠΌ:

Dockerfile Π³ΠΎΡ‚ΠΎΠ², ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π°

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ examples/curl ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² спискС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, сохранСнныС Π² Ρ„Π°ΠΉΠ»Π΅:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ с facebook.com:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, сохранСнныС Π² Ρ„Π°ΠΉΠ»Π΅:

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ созданию ΠΎΠ±Ρ€Π°Π·ΠΎΠ²

Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Python + Redis

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Python ΠΈ Redis.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ examples/compose ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ счСтчик просмотров Π² Redis. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ссылку ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² этом.

ИспользованиС docker-compose – это Ρ‚Π΅ΠΌΠ° для Ρ†Π΅Π»ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ ΠΈΠ· Docker Hub, Π° Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС – слСдуйтС рСкомСндациям, пСрСчислСнным Π²Ρ‹ΡˆΠ΅. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния использования docker-compose – всСгда Π΄Π°Π²Π°ΠΉΡ‚Π΅ явныС ΠΈΠΌΠ΅Π½Π° вашим Ρ‚ΠΎΠΌΠ°ΠΌ. Π­Ρ‚ΠΎ простоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Π’ этом случаС redis_data Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° docker-compose.yml.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠ°:

Π‘Π΅Π· явного ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ UUID. И Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π”ΠΎΠΊΠ΅Ρ€ стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… инструмСнтов соврСмСнного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π”Π°, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния ΠΈ трСбования Π² зависимости ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ вашСй систСмы, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ усидчивости – ΠΈ ΠΌΠΈΡ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡ€ΡƒΡ‡Π΅Π½!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *