15%

Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ 15% Π½Π° всСх услугах хостинга

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° любой хостинг-ΠΏΠ»Π°Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
ΠΠ°Ρ‡Π°Ρ‚ΡŒ
20.11.2024

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Docker ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

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

1. ПониманиС Docker

Docker ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для упрощСния развСртывания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин (Π’Πœ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ядро ОБ хоста, сохраняя ΠΏΡ€ΠΈ этом ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ позволяСт Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

2. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Docker

2.1. Π”Π²ΠΈΠΆΠΎΠΊ Docker

Docker Engine – это основной ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт ΠΈ управляСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя:

  • Π”Π΅ΠΌΠΎΠ½ Docker Daemon: Ѐоновая слуТба, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker.
  • Docker CLI (интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки): Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Docker Daemon для создания, управлСния ΠΈ запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

2.2. ΠžΠ±Ρ€Π°Π·Ρ‹ Docker

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

2.3. ΠšΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚ΠΎΡ€ Docker

Docker Hub – это ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ рССстр, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ Docker. Он прСдоставляСт Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для хранСния ΠΈ управлСния ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ, позволяя Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈΠ· рССстра для развСртывания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

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

Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Docker

Dockerfile – это скрипт, содСрТащий инструкции ΠΏΠΎ созданию ΠΎΠ±Ρ€Π°Π·Π° Docker. НапримСр, простой Dockerfile для создания ΠΎΠ±Ρ€Π°Π·Π° Π²Π΅Π±-прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ срСду исполнСния Node.js Π² качСствС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° FROM node:14 # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ WORKDIR /usr/src/app # Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ package.json ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости COPY package*.json ./ RUN npm install # Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ прилоТСния COPY . . # ВыставляСм ΠΏΠΎΡ€Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EXPOSE 8080 # Команда для запуска прилоТСния CMD [“node”, “app.js”]

Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π° Docker

ПослС создания Dockerfile Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Docker с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

docker build -t my-app .

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Docker Π½Π° сборку ΠΎΠ±Ρ€Π°Π·Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ my-app с использованиСм Dockerfile Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π¨Π°Π³ 3: Запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker

ПослС сборки ΠΎΠ±Ρ€Π°Π·Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° Π΅Π³ΠΎ основС:

docker run -p 8080:8080 my-app

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° запускаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° my-app ΠΈ сопоставляСт ΠΏΠΎΡ€Ρ‚ 8080 Π½Π° хостС с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ 8080 Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

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

  • ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ: ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой систСмС, Π³Π΄Π΅ установлСн Docker, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ прилоТСния ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ срСды Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.
  • Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: Docker Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ прилоТСния Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с “это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΌΠΎΠ΅ΠΉ машинС”.
  • Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ: ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² своСм собствСнном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт нСскольким прилоТСниям ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ хостС Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования рСсурсов: ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ°Π»Ρ‹ΠΉ вСс ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ядро ОБ хоста, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ эффСктивному использованию рСсурсов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π’Πœ.

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

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

15%

Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ 15% Π½Π° всСх услугах хостинга

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° любой хостинг-ΠΏΠ»Π°Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
ΠΠ°Ρ‡Π°Ρ‚ΡŒ