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

Для изоляции ΠΈ управлСния рСсурсами ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ cgroup. Π’Π°ΠΊ ΠΆΠ΅ для изоляции Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Namespace. ВсС это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ядра Linux, поэтому Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сильного влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Однако, Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ остороТным ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с диском ΠΈ ΡΠ΅Ρ‚ΡŒΡŽ. Π‘ ΡΠ΅Ρ‚ΡŒΡŽ большС всСго ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ запускС nginx ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ просадку Π² 5%.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ docker запускаСтся ΠΎΡ‚ root ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Docker Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ 3 основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  • Docker client: ΠšΠ»ΠΈΠ΅Π½Ρ‚ Docker взаимодСйствуСт с Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Docker.
  • Docker host: Π”Π΅ΠΌΠΎΠ½ Docker ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запросы ΠΊ Docker API ΠΈ управляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Docker, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, сСти ΠΈ Ρ‚ΠΎΠΌΠ°.
  • Docker registry: РСгистры Docker хранят ΠΎΠ±Ρ€Π°Π·Ρ‹ Docker. Docker Hub β€” это ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ рСгистр, доступный для всСх.

ПолСзноС

  • Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° для Π°Π½Π°Π»ΠΈΠ·Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²: Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Dive
  • Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Hadolint. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π΄ΠΎΠΊΠ΅Ρ€ Ρ„Π°ΠΉΠ» Π½Π° ΠΏΠ»ΠΎΡ…ΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.
  • xfs Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ
  • Native Overlay Diff Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ (docker info)
  • ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Docker ΠΎΠ±Ρ€Π°Π·Ρ‹