Π”ΠΎΡ†ΠΊΠ΅Ρ€ савСти: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ΄ смСћа

Π”ΠΎΡ†ΠΊΠ΅Ρ€ савСти: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ΄ смСћа

Π—Π΄Ρ€Π°Π²ΠΎ, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Ρ™Π°ΠΌ вашој паТњи ΠΏΡ€Π΅Π²ΠΎΠ΄ Ρ‡Π»Π°Π½ΠΊΠ° β€žΠ‘Π°Π²Π΅Ρ‚ΠΈ Π·Π° Π”ΠΎΡ†ΠΊΠ΅Ρ€: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ Π»ΠΎΠΊΠ°Π»Π½Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒβ€œ Π°ΡƒΡ‚ΠΎΡ€ Π›ΡƒΡ† ΠˆΡƒΠ³Π³Π΅Ρ€ΠΈ.

Данас Ρ›Π΅ΠΌΠΎ ΠΏΡ€ΠΈΡ‡Π°Ρ‚ΠΈ ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π”ΠΎΡ†ΠΊΠ΅Ρ€ користи простор Π½Π° диску хост машинС, Π° Ρ‚Π°ΠΊΠΎΡ’Π΅ Ρ›Π΅ΠΌΠΎ схватити ΠΊΠ°ΠΊΠΎ Π΄Π° ослободимо овај простор ΠΎΠ΄ остатака Π½Π΅ΠΈΡΠΊΠΎΡ€ΠΈΡˆΡ›Π΅Π½ΠΈΡ… слика ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°.


Π”ΠΎΡ†ΠΊΠ΅Ρ€ савСти: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ΄ смСћа

Π£ΠΊΡƒΠΏΠ½Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡšΠ°

Π”ΠΎΡ†ΠΊΠ΅Ρ€ јС ΠΊΡƒΠ» ствар, Π²Π΅Ρ€ΠΎΠ²Π°Ρ‚Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΠΎ данас ΡΡƒΠΌΡšΠ° Ρƒ Ρ‚ΠΎ. ΠŸΡ€Π΅ само Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½Π°, овај ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ Π½Π°ΠΌ јС Π΄Π°ΠΎ ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ Π½ΠΎΠ² Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ, испоруку ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠ³ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜ΡƒΡ›ΠΈ Π½Π°ΠΌ Π΄Π° Π·Π½Π°Ρ‡Π°Ρ˜Π½ΠΎ ΡƒΡˆΡ‚Π΅Π΄ΠΈΠΌΠΎ ЦПУ ΠΈ РАМ рСсурсС. ΠŸΠΎΡ€Π΅Π΄ ΠΎΠ²ΠΎΠ³Π° (Π° Π·Π° Π½Π΅ΠΊΠ΅ Ρ›Π΅ Ρ‚ΠΎ Π±ΠΈΡ‚ΠΈ најваТнијС), Π”ΠΎΡ†ΠΊΠ΅Ρ€ Π½Π°ΠΌ јС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠΎ Π΄Π° Π½Π΅Π²Π΅Ρ€ΠΎΠ²Π°Ρ‚Π½ΠΎ ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²ΠΈΠΌΠΎ ΠΈ објСдинимо ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈΠΌ циклусом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° којС користимо.

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, свС ΠΎΠ²Π΅ ΡƒΠΆΠΈΡ‚ΠΊΠ΅ саврСмСног ΠΆΠΈΠ²ΠΎΡ‚Π° ΠΈΠΌΠ°Ρ˜Ρƒ ΡΠ²ΠΎΡ˜Ρƒ Ρ†Π΅Π½Ρƒ. Када ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ΠΌΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅, ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΠΌΠΎ ΠΈΠ»ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ сопствСнС сликС ΠΈ постављамо слоТСнС СкосистСмС, ΠΌΠΎΡ€Π°ΠΌΠΎ Π΄Π° ΠΏΠ»Π°Ρ‚ΠΈΠΌΠΎ. А ΠΏΠ»Π°Ρ›Π°ΠΌΠΎ, ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ осталог, ΠΈ простором Π½Π° диску.

Ако Π½ΠΈΠΊΠ°Π΄Π° нистС Ρ€Π°Π·ΠΌΠΈΡˆΡ™Π°Π»ΠΈ ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠΎΠ»ΠΈΠΊΠΎ простора Π”ΠΎΡ†ΠΊΠ΅Ρ€ Π·Π°ΠΏΡ€Π°Π²ΠΎ Π·Π°ΡƒΠ·ΠΈΠΌΠ° Π½Π° вашој машини, ΠΌΠΎΠΆΠ΄Π° Ρ›Π΅Ρ‚Π΅ Π±ΠΈΡ‚ΠΈ Π½Π΅ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½ΠΎ ΠΈΠ·Π½Π΅Π½Π°Ρ’Π΅Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΠΌ ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

$ docker system df

Π”ΠΎΡ†ΠΊΠ΅Ρ€ савСти: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ΄ смСћа

Ово ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Ρƒ диска Π”ΠΎΡ†ΠΊΠ΅Ρ€-Π° Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ контСкстима:

  • сликС – ΡƒΠΊΡƒΠΏΠ½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° слика којС су ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚Π΅ ΠΈΠ· ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° слика ΠΈ ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½Π΅ Π½Π° вашСм систСму;
  • ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ – ΡƒΠΊΡƒΠΏΠ½Π° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π° простора Π½Π° диску који сС користи Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° (ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ ΡƒΠΊΡƒΠΏΠ°Π½ ΠΎΠ±ΠΈΠΌ слојСва Ρ‡ΠΈΡ‚Π°ΡšΠ° ΠΈ писања свих ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°);
  • Π»ΠΎΠΊΠ°Π»Π½ΠΈ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ΠΈ – Π·Π°ΠΏΡ€Π΅ΠΌΠΈΠ½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎΠ³ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ΠΎΠ³ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅;
  • Π±ΡƒΠΈΠ»Π΄ Ρ†Π°Ρ†Ρ…Π΅ – ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ гСнСрисанС процСсом ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ сликС (ΠΏΠΎΠΌΠΎΡ›Ρƒ Π°Π»Π°Ρ‚Π° Π‘ΡƒΠΈΠ»Π΄ΠšΠΈΡ‚, доступног ΠΏΠΎΡ‡Π΅Π²ΡˆΠΈ ΠΎΠ΄ Π”ΠΎΡ†ΠΊΠ΅Ρ€ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ 18.09).

Кладим сС Π΄Π° стС Π½Π°ΠΊΠΎΠ½ ΠΎΠ²ΠΎΠ³ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎΠ³ прСноса ΠΆΠ΅Ρ™Π½ΠΈ Π΄Π° очиститС свој диск ΠΎΠ΄ смСћа ΠΈ Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π΅ Π³ΠΈΠ³Π°Π±Π°Ρ˜Ρ‚Π΅ Ρƒ ΠΆΠΈΠ²ΠΎΡ‚ (Π½Π°ΠΏΠΎΠΌΠ΅Π½Π°: посСбно Π°ΠΊΠΎ ΠΏΠ»Π°Ρ›Π°Ρ‚Π΅ ΠΊΠΈΡ€ΠΈΡ˜Ρƒ Π·Π° ΠΎΠ²Π΅ Π³ΠΈΠ³Π°Π±Π°Ρ˜Ρ‚Π΅ сваког мСсСца).

ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ диска ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°

Π‘Π²Π°ΠΊΠΈ ΠΏΡƒΡ‚ ΠΊΠ°Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π½Π° главној машини, Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° сС ΠΊΡ€Π΅ΠΈΡ€Π° Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ /Π²Π°Ρ€/Π»ΠΈΠ±/Π΄ΠΎΡ†ΠΊΠ΅Ρ€, ΠΌΠ΅Ρ’Ρƒ којима јС Π²Ρ€Π΅Π΄Π½ΠΎ Π½Π°ΠΏΠΎΠΌΠ΅Π½ΡƒΡ‚ΠΈ слСдСћС:

  • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ /Π²Π°Ρ€/Π»ΠΈΠ±/Π΄ΠΎΡ†ΠΊΠ΅Ρ€/цонтаинСрс/Ρ†ΠΎΠ½Ρ‚Π°ΠΈΠ½Π΅Ρ€_Π˜Π” – ΠΊΠ°Π΄Π° користитС стандардни Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ²Π΄Π΅ сС Ρ‡ΡƒΠ²Π°Ρ˜Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° Ρƒ ЈБОН Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ. ΠŸΡ€Π΅Π²ΠΈΡˆΠ΅ Π΄Π΅Ρ‚Π°Ρ™Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΈ, ΠΊΠ°ΠΎ ΠΈ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅ којС Π½ΠΈΠΊΠΎ Π½Π΅ Ρ‡ΠΈΡ‚Π° ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΎΠ±Ρ€Π°Ρ’ΡƒΡ˜Π΅, чСсто Π΄ΠΎΠ²ΠΎΠ΄Π΅ Π΄ΠΎ ΠΏΡƒΡšΠ΅ΡšΠ° дискова.
  • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ /Π²Π°Ρ€/Π»ΠΈΠ±/Π΄ΠΎΡ†ΠΊΠ΅Ρ€/ΠΎΠ²Π΅Ρ€Π»Π°ΠΈ2 садрТи слојСвС Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ ΠΈ ΡƒΠΏΠΈΡΠΈΠ²Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° (ΠΎΠ²Π΅Ρ€Π»Π°ΠΈ2 јС ΠΏΡ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€ Ρƒ Π²Π΅Ρ›ΠΈΠ½ΠΈ Π›ΠΈΠ½ΡƒΠΊ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π°). Ако ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ Ρƒ свом систСму Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, ΠΎΠ½Π΄Π° Ρ›Π΅ ΠΎΠ½ Π±ΠΈΡ‚ΠΈ ΡΠΌΠ΅ΡˆΡ‚Π΅Π½ Ρƒ овај Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ.

Π₯ајдС Π΄Π° замислимо систСм Π½Π° ΠΊΠΎΠΌΠ΅ јС инсталиран Π½Π΅Ρ‚Π°ΠΊΠ½ΡƒΡ‚ΠΈ Π”ΠΎΡ†ΠΊΠ΅Ρ€, који Π½ΠΈΠΊΠ°Π΄Π° нијС Π±ΠΈΠΎ ΡƒΠΊΡ™ΡƒΡ‡Π΅Π½ Ρƒ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ слика. ЊСгов ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ ΠΎ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΡƒ простора Π½Π° диску Ρ›Π΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΎΠ²Π°ΠΊΠΎ:

$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         0          0          0B         0B
Containers     0          0          0B         0B
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

Π₯ајдС Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅ΠΌΠΎ Π½Π΅ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΠ“Π˜ΠΠšΠ‘:

$ docker container run --name www -d -p 8000:80 nginx:1.16

Π¨Ρ‚Π° сС дСшава са диском:

  • сликС Π·Π°ΡƒΠ·ΠΈΠΌΠ°Ρ˜Ρƒ 126 ΠœΠ‘, ΠΎΠ²ΠΎ јС исти ΠΠ“Π˜ΠΠšΠ‘ који смо ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠ»ΠΈ Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Ρƒ;
  • ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π·Π°ΡƒΠ·ΠΈΠΌΠ°Ρ˜Ρƒ смСшна 2 Π±Π°Ρ˜Ρ‚Π°.

$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         1          1          126M       0B (0%)
Containers     1          1          2B         0B (0%)
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

Π‘ΡƒΠ΄Π΅Ρ›ΠΈ ΠΏΠΎ Π·Π°ΠΊΡ™ΡƒΡ‡ΠΊΡƒ, још Π½Π΅ΠΌΠ°ΠΌΠΎ простор који бисмо ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ослободимо. ΠŸΠΎΡˆΡ‚ΠΎ су 2 Π±Π°Ρ˜Ρ‚Π° ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ Π½Π΅ΠΎΠ·Π±ΠΈΡ™Π½Π°, замислимо Π΄Π° јС наш ΠΠ“Π˜ΠΠšΠ‘ Π½Π΅ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°Π½ΠΎ написао Π½Π΅Π³Π΄Π΅ 100 ΠΌΠ΅Π³Π°Π±Π°Ρ˜Ρ‚Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ тСст.ΠΈΠΌΠ³ Ρ‚Π°Ρ‡Π½ΠΎ ΠΎΠ²Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ ΡƒΠ½ΡƒΡ‚Π°Ρ€ сСбС.

$ docker exec -ti www 
  dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]

Π₯ајдС Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΎ испитамо ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ простора Π½Π° диску Π½Π° хосту. Π’ΠΈΠ΄Π΅Ρ›Π΅ΠΌΠΎ Π΄Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ (ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ) Ρ‚Π°ΠΌΠΎ Π·Π°ΡƒΠ·ΠΈΠΌΠ° 100 ΠΌΠ΅Π³Π°Π±Π°Ρ˜Ρ‚Π°.

$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         1          1          126M       0B (0%)
Containers     1          1          104.9MB    0B (0%)
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

Мислим Π΄Π° сС ваш Ρ€Π°Π΄ΠΎΠ·Π½Π°Π»ΠΈ ΠΌΠΎΠ·Π°ΠΊ Π²Π΅Ρ› ΠΏΠΈΡ‚Π° Π³Π΄Π΅ сС Π½Π°Π»Π°Π·ΠΈ наш тСст.ΠΈΠΌΠ³ Ρ„Π°Ρ˜Π». Π₯ајдС Π΄Π° Π³Π° ΠΏΠΎΡ‚Ρ€Π°ΠΆΠΈΠΌΠΎ:

$ find /var/lib/docker -type f -name test.img
/var/lib/docker/overlay2/83f177...630078/merged/test.img
/var/lib/docker/overlay2/83f177...630078/diff/test.img

НС ΡƒΠ»Π°Π·Π΅Ρ›ΠΈ Ρƒ Π΄Π΅Ρ‚Π°Ρ™Π΅, ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚ΠΈ Π΄Π° јС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° тСст.ΠΈΠΌΠ³ Π½Π° Π·Π³ΠΎΠ΄Π½ΠΎΠΌ мСсту Π½Π° Π½ΠΈΠ²ΠΎΡƒ Ρ‡ΠΈΡ‚Π°ΡšΠ° ΠΈ писања, ΠΊΠΎΡ˜Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡˆΠ΅ ΠΎΠ²Π΅Ρ€Π»Π°ΠΈ2 Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€. Ако зауставимо наш ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π΄ΠΎΠΌΠ°Ρ›ΠΈΠ½ Ρ›Π΅ Π½Π°ΠΌ Ρ€Π΅Ρ›ΠΈ Π΄Π° овај простор Ρƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ослободи:

# Stopping the www container
$ docker stop www

# Visualizing the impact on the disk usage
$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         1          1          126M       0B (0%)
Containers     1          0          104.9MB    104.9MB (100%)
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

Како ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΎΠ²ΠΎ Π΄Π° ΡƒΡ€Π°Π΄ΠΈΠΌΠΎ? Π‘Ρ€ΠΈΡΠ°ΡšΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°, ΡˆΡ‚ΠΎ Ρ›Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΠΈ Π±Ρ€ΠΈΡΠ°ΡšΠ΅ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅Π³ простора Π½Π° Π½ΠΈΠ²ΠΎΡƒ Ρ‡ΠΈΡ‚Π°ΡšΠ° ΠΈ писања.

Π‘Π° слСдСћом ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚ΠΈ свС инсталиранС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅ Ρƒ јСдном Π½Π°Π»Π΅Ρ‚Ρƒ ΠΈ очистити диск ΠΎΠ΄ свих Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ ΠΈ ΡƒΠΏΠΈΡΠΈΠ²Π°ΡšΠ΅ којС су ΠΊΡ€Π΅ΠΈΡ€Π°Π»ΠΈ:

$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
5e7f8e5097ace9ef5518ebf0c6fc2062ff024efb495f11ccc89df21ec9b4dcc2

Total reclaimed space: 104.9MB

Π”Π°ΠΊΠ»Π΅, ослободили смо 104,9 ΠΌΠ΅Π³Π°Π±Π°Ρ˜Ρ‚Π° Π±Ρ€ΠΈΡΠ°ΡšΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°. Али ΠΏΠΎΡˆΡ‚ΠΎ вишС Π½Π΅ користимо ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚Ρƒ слику, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΏΠΎΡΡ‚Π°Ρ˜Π΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π·Π° Π±Ρ€ΠΈΡΠ°ΡšΠ΅ ΠΈ ΠΎΡΠ»ΠΎΠ±Π°Ρ’Π°ΡšΠ΅ Π½Π°ΡˆΠΈΡ… рСсурса:

$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         1          0          126M       126M (100%)
Containers     0          0          0B         0B
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

НапомСна: Π‘Π²Π΅ Π΄ΠΎΠΊ слику користи Π±Π°Ρ€ јСдан ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π½Π΅Ρ›Π΅Ρ‚Π΅ ΠΌΠΎΡ›ΠΈ Π΄Π° користитС овај Ρ‚Ρ€ΠΈΠΊ.

Подкоманда ΠΏΡ€ΡƒΠ½Π΅ ΠΊΠΎΡ˜Ρƒ смо користили ΠΈΠ·Π½Π°Π΄ ΠΈΠΌΠ° Π΅Ρ„Π΅ΠΊΠ°Ρ‚ само Π½Π° заустављСнС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅. Ако ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅ΠΌΠΎ Π½Π΅ само заустављСнС Π²Π΅Ρ› ΠΈ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° користимо Ρ˜Π΅Π΄Π½Ρƒ ΠΎΠ΄ ΠΎΠ²ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

# Historical command
$ docker rm -f $(docker ps –aq)

# More recent command
$ docker container rm -f $(docker container ls -aq)

Π‘ΠΏΠΎΡ€Π΅Π΄Π½Π΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅: Π°ΠΊΠΎ користитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ -Ρ€ΠΌ ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°, ΠΎΠ½Π΄Π° ΠΊΠ°Π΄Π° сС заустави, сав простор Π½Π° диску који јС Π·Π°ΡƒΠ·ΠΈΠΌΠ°ΠΎ Π±ΠΈΡ›Π΅ ослобођСн.

ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ слика диска

ΠŸΡ€Π΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½Π°, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° сликС ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ стотина ΠΌΠ΅Π³Π°Π±Π°Ρ˜Ρ‚Π° Π±ΠΈΠ»Π° јС сасвим Π½ΠΎΡ€ΠΌΠ°Π»Π½Π°: Π£Π±ΡƒΠ½Ρ‚Ρƒ слика јС Π±ΠΈΠ»Π° Ρ‚Π΅ΡˆΠΊΠ° 600 ΠΌΠ΅Π³Π°Π±Π°Ρ˜Ρ‚Π°, Π° ΠœΠΈΡ†Ρ€ΠΎΡΠΎΡ„Ρ‚ .НСт слика Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π³ΠΈΠ³Π°Π±Π°Ρ˜Ρ‚Π°. Π£ Ρ‚ΠΈΠΌ ΠΎΡ‚Ρ€Ρ†Π°Π½ΠΈΠΌ Π΄Π°Π½ΠΈΠΌΠ°, ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ само јСднС сликС ΠΌΠΎΠ³Π»ΠΎ Π±ΠΈ Π΄Π° ΡƒΠ·ΠΌΠ΅ Π²Π΅Π»ΠΈΠΊΠΈ Π΄Π°Π½Π°ΠΊ Π½Π° вашСм слободном диску, Ρ‡Π°ΠΊ ΠΈ Π°ΠΊΠΎ Π΄Π΅Π»ΠΈΡ‚Π΅ Π½ΠΈΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ слика. Данас – свака част – сликС Ρ‚Π΅ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ мањС, Π°Π»ΠΈ Ρ‡Π°ΠΊ ΠΈ Ρ‚Π°ΠΊΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ€Π·ΠΎ ΠΏΠΎΠΏΡƒΠ½ΠΈΡ‚ΠΈ располоТивС рСсурсС Π°ΠΊΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΠ·ΠΌΠ΅Ρ‚Π΅ Π½Π΅ΠΊΠ΅ ΠΌΠ΅Ρ€Π΅ прСдостроТности.

ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Ρ‚ΠΈΠΏΠΎΠ²Π° слика којС нису Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΈΠ΄Ρ™ΠΈΠ²Π΅ ΠΊΡ€Π°Ρ˜ΡšΠ΅ΠΌ кориснику:

  • ΡΡ€Π΅Π΄ΡšΠ΅ сликС, Π½Π° основу ΠΊΠΎΡ˜ΠΈΡ… сС ΠΏΡ€ΠΈΠΊΡƒΠΏΡ™Π°Ρ˜Ρƒ Π΄Ρ€ΡƒΠ³Π΅ сликС - ΠΎΠ½Π΅ сС Π½Π΅ ΠΌΠΎΠ³Ρƒ избрисати Π°ΠΊΠΎ користитС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅ Π½Π° основу ΠΎΠ²ΠΈΡ… β€žΠ΄Ρ€ΡƒΠ³ΠΈΡ…β€œ слика;
  • висСћС сликС су ΡΡ€Π΅Π΄ΡšΠ΅ сликС Π½Π° којС сС Π½Π΅ ΠΏΠΎΠ·ΠΈΠ²Π° нијСдан ΠΎΠ΄ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° - ΠΌΠΎΠ³Ρƒ сС избрисати.
  • Π‘Π° слСдСћом ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π° Π»ΠΈ ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅ висСћС сликС Π½Π° вашСм систСму:

$ docker image ls -f dangling=true
REPOSITORY  TAG      IMAGE ID         CREATED             SIZE
none      none   21e658fe5351     12 minutes ago      71.3MB

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡ… ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚ΠΈ Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½:

$ docker image rm $(docker image ls -f dangling=true -q)

Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠΎ користити ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΡ€ΡƒΠ½Π΅:

$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:143407a3cb7efa6e95761b8cd6cea25e3f41455be6d5e7cda
deleted: sha256:738010bda9dd34896bac9bbc77b2d60addd7738ad1a95e5cc
deleted: sha256:fa4f0194a1eb829523ecf3bad04b4a7bdce089c8361e2c347
deleted: sha256:c5041938bcb46f78bf2f2a7f0a0df0eea74c4555097cc9197
deleted: sha256:5945bb6e12888cf320828e0fd00728947104da82e3eb4452f

Total reclaimed space: 12.9kB

Ако одјСдном ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅ΠΌΠΎ свС сликС зајСдно (Π° Π½Π΅ само Π΄Π° висС) јСдном ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ, ΠΎΠ½Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΡƒΡ€Π°Π΄ΠΈΠΌΠΎ ΠΎΠ²ΠΎ:

$ docker image rm $(docker image ls -q)

ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ диска ΠΏΠΎ Π·Π°ΠΏΡ€Π΅ΠΌΠΈΠ½Π°ΠΌΠ°

Π’ΠΎΠ»ΡƒΠΌΠΈ сС користС Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ·Π²Π°Π½ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° сачувамо Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π΄Π° бисмо ΠΈΡ… користили Π½Π° Π½Π΅ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π½Π°Ρ‡ΠΈΠ½. ЧСст ΠΏΡ€ΠΈΠΌΠ΅Ρ€ су Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

Π₯ајдС Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅ΠΌΠΎ ΠœΠΎΠ½Π³ΠΎΠ”Π‘ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΠΌΠΎ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ ΠΈΠ·Π²Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° ΠΈ Π²Ρ€Π°Ρ‚ΠΈΠΌΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρƒ ΠΊΠΎΠΏΠΈΡ˜Ρƒ Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ· њСга (ΠΈΠΌΠ°ΠΌΠΎ јС доступну Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ Π±Ρ†ΠΊ.јсон):

# Running a mongo container
$ docker run --name db -v $PWD:/tmp -p 27017:27017 -d mongo:4.0

# Importing an existing backup (from a huge bck.json file)
$ docker exec -ti db mongoimport 
  --db 'test' 
  --collection 'demo' 
  --file /tmp/bck.json 
  --jsonArray

ΠŸΠΎΠ΄Π°Ρ†ΠΈ Ρ›Π΅ сС Π½Π°Π»Π°Π·ΠΈΡ‚ΠΈ Π½Π° главној машини Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ /Π²Π°Ρ€/Π»ΠΈΠ±/Π΄ΠΎΡ†ΠΊΠ΅Ρ€/волумСс. Али Π·Π°ΡˆΡ‚ΠΎ Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡƒ Ρ‡ΠΈΡ‚Π°ΡšΠ° ΠΈ писања ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°? Π—Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ јС Ρƒ Π”ΠΎΡ†ΠΊΠ΅Ρ€Ρ„ΠΈΠ»Π΅-Ρƒ сликС ΠœΠΎΠ½Π³ΠΎΠ”Π‘, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ /Π΄Π°Ρ‚Π°/Π΄Π± (Π³Π΄Π΅ ΠœΠΎΠ½Π³ΠΎΠ”Π‘ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚ΠΈ својС ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅) јС дСфинисан ΠΊΠ°ΠΎ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ савСти: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΎΠ΄ смСћа

НапомСна: ΠΌΠ½ΠΎΠ³Π΅ сликС којС ΠΌΠΎΡ€Π°Ρ˜Ρƒ Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρƒ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ користС Π·Π°ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅ Ρ‚ΠΈΡ… ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

Када сС Π΄ΠΎΠ²ΠΎΡ™Π½ΠΎ ΠΈΠ³Ρ€Π°ΠΌΠΎ са ΠœΠΎΠ½Π³ΠΎΠ”Π‘-ΠΎΠΌ ΠΈ зауставимо (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΄Π° Ρ‡Π°ΠΊ ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅ΠΌΠΎ) ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ избрисан. НаставићС Π΄Π° Π·Π°ΡƒΠ·ΠΈΠΌΠ° наш Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½ΠΈ простор Π½Π° диску свС Π΄ΠΎΠΊ Π³Π° Сксплицитно Π½Π΅ ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅ΠΌΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ ΠΏΠΎΠΏΡƒΡ‚ ΠΎΠ²Π΅:

$ docker volume rm $(docker volume ls -q)

Па, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ користити ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΡ€ΡƒΠ½Π΅ која Π½Π°ΠΌ јС Π²Π΅Ρ› ΠΏΠΎΠ·Π½Π°Ρ‚Π°:

$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
d50b6402eb75d09ec17a5f57df4ed7b520c448429f70725fc5707334e5ded4d5
8f7a16e1cf117cdfddb6a38d1f4f02b18d21a485b49037e2670753fa34d115fc
599c3dd48d529b2e105eec38537cd16dac1ae6f899a123e2a62ffac6168b2f5f
...
732e610e435c24f6acae827cd340a60ce4132387cfc512452994bc0728dd66df
9a3f39cc8bd0f9ce54dea3421193f752bda4b8846841b6d36f8ee24358a85bae
045a9b534259ec6c0318cb162b7b4fca75b553d4e86fc93faafd0e7c77c79799
c6283fe9f8d2ca105d30ecaad31868410e809aba0909b3e60d68a26e92a094da

Total reclaimed space: 25.82GB
luc@saturn:~$

ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ диска Π·Π° кСш Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ слика

Π£ Π”ΠΎΡ†ΠΊΠ΅Ρ€-Ρƒ 18.09, процСс ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° сликС јС ΠΏΡ€Π΅Ρ‚Ρ€ΠΏΠ΅ΠΎ Π½Π΅ΠΊΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ Π·Π°Ρ…Π²Π°Ρ™ΡƒΡ˜ΡƒΡ›ΠΈ Π°Π»Π°Ρ‚Ρƒ Π‘ΡƒΠΈΠ»Π΄ΠšΠΈΡ‚. Ова ствар ΠΏΠΎΠ²Π΅Ρ›Π°Π²Π° Π±Ρ€Π·ΠΈΠ½Ρƒ процСса ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΡƒΡ˜Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡˆΡ›Ρƒ. ОвдС Π½Π΅Ρ›Π΅ΠΌΠΎ Ρ€Π°Π·ΠΌΠ°Ρ‚Ρ€Π°Ρ‚ΠΈ свС Π΄Π΅Ρ‚Π°Ρ™Π΅ ΠΎΠ²ΠΎΠ³ Π΄ΠΈΠ²Π½ΠΎΠ³ Π°Π»Π°Ρ‚Π°; фокусираћСмо сС само Π½Π° Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎ сС Π±Π°Π²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΠΌΠ° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ° простора Π½Π° диску.

Π Π΅Ρ†ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠΎ ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Ρƒ НодС.Јс Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ:

  • Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊ.јс ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½ Π₯ВВП сСрвСр који ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° линијом Π½Π° сваки ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΈ Π·Π°Ρ…Ρ‚Π΅Π²:
  • Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΏΠ°Ρ†ΠΊΠ°Π³Π΅.јсон Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ зависности, ΠΎΠ΄ ΠΊΠΎΡ˜ΠΈΡ… сС само Π΅ΠΊΠΏΡ€Π΅ΡΡΡ˜Ρ користи Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π₯ВВП сСрвСра:

$ cat index.js
var express = require('express');
var util    = require('util');
var app = express();
app.get('/', function(req, res) {
  res.setHeader('Content-Type', 'text/plain');
  res.end(util.format("%s - %s", new Date(), 'Got Request'));
});
app.listen(process.env.PORT || 80);

$ cat package.json
    {
      "name": "testnode",
      "version": "0.0.1",
      "main": "index.js",
      "scripts": {
        "start": "node index.js"
      },
      "dependencies": {
        "express": "^4.14.0"
      }
    }

Π”ΠΎΡ†ΠΊΠ΅Ρ€Ρ„ΠΈΠ»Π΅ Π·Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ сликС ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΠ²Π°ΠΊΠΎ:

FROM node:13-alpine
COPY package.json /app/package.json
RUN cd /app && npm install
COPY . /app/
WORKDIR /app
EXPOSE 80
CMD ["npm", "start"]

Π₯ајдС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠΎ слику Π½Π° ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ Π½Π°Ρ‡ΠΈΠ½, Π±Π΅Π· ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π‘ΡƒΠΈΠ»Π΄ΠšΠΈΡ‚-Π°:

$ docker build -t app:1.0 .

Ако ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠΎ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ простора Π½Π° диску, ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° само основна слика (Ρ‡Π²ΠΎΡ€:13-Π°Π»ΠΏΠΈΠ½Π΅) ΠΈ Ρ†ΠΈΡ™Π½Π° слика (Π°ΠΏΠΏ:1.0) Π·Π°ΡƒΠ·ΠΈΠΌΠ°Ρ˜Ρƒ простор:

TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         2          0          109.3MB    109.3MB (100%)
Containers     0          0          0B         0B
Local Volumes  0          0          0B         0B
Build Cache    0          0          0B         0B

Π₯ајдС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠΎ Π΄Ρ€ΡƒΠ³Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ нашС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, користСћи Π‘ΡƒΠΈΠ»Π΄ΠšΠΈΡ‚. Π”Π° бисмо Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, само Ρ‚Ρ€Π΅Π±Π° Π΄Π° подСсимо ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ Π”ΠžΠ¦ΠšΠ•Π _Π‘Π£Π˜Π›Π”ΠšΠ˜Π’ Π½Π° 1:

$ DOCKER_BUILDKIT=1 docker build -t app:2.0 .

Ако сада ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠΎ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ диска, Π²ΠΈΠ΄Π΅Ρ›Π΅ΠΌΠΎ Π΄Π° јС кСш Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄ΡšΡƒ (Π±ΡƒΠΈΠ΄-Ρ†Π°Ρ†Ρ…Π΅) сада ΡƒΠΊΡ™ΡƒΡ‡Π΅Π½ Ρ‚Π°ΠΌΠΎ:

$ docker system df
TYPE           TOTAL      ACTIVE     SIZE       RECLAIMABLE
Images         2          0          109.3MB    109.3MB (100%)
Containers     0          0          0B         0B
Local Volumes  0          0          0B         0B
Build Cache    11         0          8.949kB    8.949kB

Π”Π° бистС Π³Π° обрисали, користитС слСдСћу ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ docker builder prune
WARNING! This will remove all dangling build cache.
Are you sure you want to continue? [y/N] y
Deleted build cache objects:
rffq7b06h9t09xe584rn4f91e
ztexgsz949ci8mx8p5tzgdzhe
3z9jeoqbbmj3eftltawvkiayi

Total reclaimed space: 8.949kB

Π˜Π·Π±Ρ€ΠΈΡˆΠΈ свС!

Π”Π°ΠΊΠ»Π΅, ΠΏΠΎΠ³Π»Π΅Π΄Π°Π»ΠΈ смо Ρ‡ΠΈΡˆΡ›Π΅ΡšΠ΅ простора Π½Π° диску који Π·Π°ΡƒΠ·ΠΈΠΌΠ°Ρ˜Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, сликС ΠΈ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ΠΈ. Π£ Ρ‚ΠΎΠΌΠ΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠ°ΠΆΠ΅ ΠΏΠΎΡ‚ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΡƒΠ½Π΅. Али ΠΌΠΎΠΆΠ΅ сС користити ΠΈ Π½Π° Π½ΠΈΠ²ΠΎΡƒ систСма Π΄ΠΎΡ†ΠΊΠ΅Ρ€ ΠΈ очистићС свС ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅:

$ docker system prune
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N]

Ако ΠΈΠ· Π½Π΅ΠΊΠΎΠ³ Ρ€Π°Π·Π»ΠΎΠ³Π° ΡˆΡ‚Π΅Π΄ΠΈΡ‚Π΅ простор Π½Π° диску Π½Π° машини Π½Π° којој Ρ€Π°Π΄ΠΈ Π”ΠΎΡ†ΠΊΠ΅Ρ€, ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° постанС Π½Π°Π²ΠΈΠΊΠ°.

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€