рдбреЙрдХрд░ рдЯрд┐рдкрд╛: рддреБрдордЪреЗ рдорд╢реАрди рдЬрдВрдХ рд╕рд╛рдл рдХрд░рд╛

рдбреЙрдХрд░ рдЯрд┐рдкрд╛: рддреБрдордЪреЗ рдорд╢реАрди рдЬрдВрдХ рд╕рд╛рдл рдХрд░рд╛

рдЕрд╣реЛ рд╣рд╛рдмреНрд░! рд▓реЗрдЦрд╛рдЪрд╛ рдЕрдиреБрд╡рд╛рдж рдореА рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрдгреВрди рджреЗрдд рдЖрд╣реЗ "рдбреЙрдХрд░ рдЯрд┐рдкреНрд╕: рддреБрдордЪреЗ рд╕реНрдерд╛рдирд┐рдХ рдорд╢реАрди рд╕рд╛рдл тАЛтАЛрдХрд░рд╛" рд▓реЗрдЦрдХ рд▓реНрдпреВрдХ рдЧреБрд│.

рдЖрдЬ рдЖрдкрдг рдбреЙрдХрд░ рд╣реЛрд╕реНрдЯ рдорд╢реАрдирдЪреА рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдХрд╢реА рд╡рд╛рдкрд░рддреЛ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ рдЖрдгрд┐ рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рд╕реНрдХреНрд░реЕрдкрдордзреВрди рд╣реА рдЬрд╛рдЧрд╛ рдХрд╢реА рдореЛрдХрд│реА рдХрд░рд╛рд╡реА рд╣реЗ рджреЗрдЦреАрд▓ рдЖрдореНрд╣реА рд╢реЛрдзреВ.


рдбреЙрдХрд░ рдЯрд┐рдкрд╛: рддреБрдордЪреЗ рдорд╢реАрди рдЬрдВрдХ рд╕рд╛рдл рдХрд░рд╛

рдПрдХреВрдг рд╡рд╛рдкрд░

рдбреЙрдХрд░ рд╣реА рдПрдХ рдЫрд╛рди рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ, рдХрджрд╛рдЪрд┐рдд рдЖрдЬ рдХрд╛рд╣реА рд▓реЛрдХрд╛рдВрдирд╛ рдпрд╛рдмрджреНрджрд▓ рд╢рдВрдХрд╛ рдЖрд╣реЗ. рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА, рдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреЗрд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛, рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдкреВрд░реНрдгрдкрдгреЗ рдирд╡реАрди рдорд╛рд░реНрдЧ рджрд┐рд▓рд╛, рдЬреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ CPU рдЖрдгрд┐ RAM рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рд▓рдХреНрд╖рдгреАрдп рдмрдЪрдд рдХрд░рддрд╛ рдЖрд▓реА. рдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд (рдЖрдгрд┐ рдХрд╛рд╣реАрдВрд╕рд╛рдареА рд╣реА рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ рдЕрд╕реЗрд▓) рдбреЙрдХрд░рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдЪреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХрдкрдгреЗ рд╕реБрд▓рдн рдЖрдгрд┐ рдПрдХрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА рдЖрд╣реЗ.

рддрдерд╛рдкрд┐, рдЖрдзреБрдирд┐рдХ рдЬреАрд╡рдирд╛рддреАрд▓ рд╣реЗ рд╕рд░реНрд╡ рдЖрдирдВрдж рдХрд┐рдВрдорддреАрд▓рд╛ рдпреЗрддрд╛рдд. рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рддреЛ, рдЖрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЛ рдХрд┐рдВрд╡рд╛ рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рдЬрдЯрд┐рд▓ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рддреИрдирд╛рдд рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреИрд╕реЗ рджреНрдпрд╛рд╡реЗ рд▓рд╛рдЧрддрд╛рдд. рдЖрдгрд┐ рдЖрдореНрд╣реА рдЗрддрд░ рдЧреЛрд╖реНрдЯреАрдВрдмрд░реЛрдмрд░рдЪ, рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рд╕рд╣ рдкреИрд╕реЗ рджреЗрддреЛ.

рдбреЙрдХрд░ рддреБрдордЪреНрдпрд╛ рдорд╢реАрдирд╡рд░ рдХрд┐рддреА рдЬрд╛рдЧрд╛ рдШреЗрддреЗ рдпрд╛рдЪрд╛ рддреБрдореНрд╣реА рдХрдзреАрд╣реА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдирд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрджрд╛рдЪрд┐рдд рдпрд╛ рдХрдорд╛рдВрдбрдЪреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯрдореБрд│реЗ рдЖрд╢реНрдЪрд░реНрдп рд╡рд╛рдЯреЗрд▓:

$ docker system df

рдбреЙрдХрд░ рдЯрд┐рдкрд╛: рддреБрдордЪреЗ рдорд╢реАрди рдЬрдВрдХ рд╕рд╛рдл рдХрд░рд╛

рд╣реЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдВрдордзреНрдпреЗ рдбреЙрдХрд░рдЪрд╛ рдбрд┐рд╕реНрдХ рд╡рд╛рдкрд░ рджрд░реНрд╢рд╡рддреЗ:

  • рдкреНрд░рддрд┐рдорд╛ тАУ рдкреНрд░рддрд┐рдорд╛ рднрд╛рдВрдбрд╛рд░рд╛рдВрдордзреВрди рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдорд╛рдВрдЪрд╛ рдПрдХреВрдг рдЖрдХрд╛рд░;
  • рдХрдВрдЯреЗрдирд░ тАУ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдЪреА рдПрдХреВрдг рд░рдХреНрдХрдо (рдореНрд╣рдгрдЬреЗ рд╕рд░реНрд╡ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рд╡рд╛рдЪрди-рд▓реЗрдЦрди рд╕реНрддрд░рд╛рдВрдЪреА рдПрдХреВрдг рдорд╛рддреНрд░рд╛);
  • рд╕реНрдерд╛рдирд┐рдХ рд╡реНрд╣реЙрд▓реНрдпреВрдо - рдХрдВрдЯреЗрдирд░рд╡рд░ рдЖрд░реЛрд╣рд┐рдд рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдЯреЛрд░реЗрдЬрдЪреЗ рдкреНрд░рдорд╛рдг;
  • рдмрд┐рд▓реНрдб рдХреЕрд╢реЗ - рдЗрдореЗрдЬ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рддрд╛рддреНрдкреБрд░рддреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ (рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдЯреВрд▓ рд╡рд╛рдкрд░реВрди, рдбреЙрдХрд░ рдЖрд╡реГрддреНрддреА 18.09 рдкрд╛рд╕реВрди рдЙрдкрд▓рдмреНрдз).

рдореА рдкреИрдЬ рд▓рд╛рд╡рддреЛ рдХреА рдпрд╛ рд╕рд╛рдзреНрдпрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдгрд╛рдирдВрддрд░ рддреБрдореНрд╣реА рддреБрдордЪреА рдбрд┐рд╕реНрдХ рдХрдЪрд░рд╛ рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдореМрд▓реНрдпрд╡рд╛рди рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдкреБрдиреНрд╣рд╛ рдЬрд┐рд╡рдВрдд рдХрд░рдгреНрдпрд╛рд╕ рдЙрддреНрд╕реБрдХ рдЖрд╣рд╛рдд (рдЯреАрдк: рд╡рд┐рд╢реЗрд╖рдд: рдЬрд░ рддреБрдореНрд╣реА рдпрд╛ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рд╕рд╛рдареА рджрд░ рдорд╣рд┐рдиреНрдпрд╛рд▓рд╛ рднрд╛рдбреЗ рджрд┐рд▓реЗ рддрд░).

рдХрдВрдЯреЗрдирд░рджреНрд╡рд╛рд░реЗ рдбрд┐рд╕реНрдХрдЪрд╛ рд╡рд╛рдкрд░

рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреБрдореНрд╣реА рд╣реЛрд╕реНрдЯ рдорд╢реАрдирд╡рд░ рдХрдВрдЯреЗрдирд░ рддрдпрд╛рд░ рдХрд░рддрд╛, /var/lib/docker рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЕрдиреЗрдХ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдбрд┐рд░реЗрдХреНрдЯрд░реА рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреА рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдЖрд╣реЗрдд:

  • рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ /var/lib/docker/containers/container_ID - рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рд╡рд╛рдкрд░рддрд╛рдирд╛, рдпреЗрдереЗ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реЙрдЧ JSON рд╕реНрд╡рд░реВрдкрд╛рдд рдЬрддрди рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЦреВрдк рддрдкрд╢реАрд▓рд╡рд╛рд░ рд▓реЙрдЧ, рддрд╕реЗрдЪ рдХреЛрдгреАрд╣реА рд╡рд╛рдЪрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рдЕрдиреНрдпрдерд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдд рдирд╛рд╣реА рдЕрд╢рд╛ рдиреЛрдВрджреА, рдЕрдиреЗрдХрджрд╛ рдбрд┐рд╕реНрдХ рднрд░реВрди рдЬрд╛рддрд╛рдд.
  • /var/lib/docker/overlay2 рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдХрдВрдЯреЗрдирд░ рд╡рд╛рдЪрди-рд▓реЗрдЦрди рд╕реНрддрд░ рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ (рдмрд╣реБрддреЗрдХ Linux рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ overlay2 рд╣рд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреГрдд рдбреНрд░рд╛рдЗрд╡реНрд╣рд░ рдЖрд╣реЗ). рдЬрд░ рдХрдВрдЯреЗрдирд░рдиреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛, рддрд░ рддреЛ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдареЗрд╡рд▓рд╛ рдЬрд╛рдИрд▓.

рдЪрд▓рд╛ рдЕрд╢рд╛ рдкреНрд░рдгрд╛рд▓реАрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдЬреНрдпрд╛рд╡рд░ рдПрдХ рдореВрд│ рдбреЙрдХрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ рдХрдзреАрд╣реА рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдгреНрдпрд╛рдд рдХрд┐рдВрд╡рд╛ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЧреБрдВрддрд▓реЗрд▓рд╛ рдирд╛рд╣реА. рддреНрдпрд╛рдЪрд╛ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд╡рд╛рдкрд░ рдЕрд╣рд╡рд╛рд▓ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

$ 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

рдЪрд▓рд╛ рдХрд╛рд╣реА рдХрдВрдЯреЗрдирд░ рд▓рд╛рдБрдЪ рдХрд░реВ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, NGINX:

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

рдбрд┐рд╕реНрдХрдЪреЗ рдХрд╛рдп рд╣реЛрддреЗ:

  • рдкреНрд░рддрд┐рдорд╛ 126 MB рд╡реНрдпрд╛рдкрддрд╛рдд, рд╣реЗ рд╕рдорд╛рди NGINX рдЖрд╣реЗ рдЬреЗ рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЖрд╣реЗ;
  • рдХрдВрдЯреЗрдирд░ рдПрдХ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж 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 рдмрд╛рдЗрдЯреНрд╕ рдкреВрд░реНрдгрдкрдгреЗ рдлрд╛рд▓рддреВ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рдЖрдордЪреНрдпрд╛ NGINX рдиреЗ рдЕрдирдкреЗрдХреНрд╖рд┐рддрдкрдгреЗ рдХреБрдареЗрддрд░реА резрежреж рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрдгрд┐ рд╕реНрд╡рддрдГрдордзреНрдпреЗрдЪ рдпрд╛ рдЖрдХрд╛рд░рд╛рдЪреА test.img рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХреЗрд▓реА.

$ 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

рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдордЪрд╛ рдЬрд┐рдЬреНрдЮрд╛рд╕реВ рдореЗрдВрджреВ рдЖрдзреАрдЪ рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдЖрд╣реЗ рдХреА рдЖрдордЪреА test.img рдлрд╛рдЗрд▓ рдХреБрдареЗ рдЖрд╣реЗ. рдЪрд▓рд╛ рддреЗ рд╢реЛрдзреВрдпрд╛:

$ 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

рддрдкрд╢реАрд▓рд╛рдд рди рдЬрд╛рддрд╛, рдЖрдореНрд╣реА рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рд╢рдХрддреЛ рдХреА test.img рдлрд╛рдЗрд▓ рд╡рд╛рдЪрди-рд▓реЗрдЦрди рд╕реНрддрд░рд╛рд╡рд░ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗ, overlay2 рдбреНрд░рд╛рдпрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдХрдВрдЯреЗрдирд░ рдерд╛рдВрдмрд╡рд▓реНрдпрд╛рд╕, рдпрдЬрдорд╛рди рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреЗрд▓ рдХреА рд╣реА рдЬрд╛рдЧрд╛, рддрддреНрддреНрд╡рддрдГ, рдореЛрдХрд│реА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ:

# 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)

рд╕рд╛рдЗрдб рдиреЛрдЯреНрд╕: рдЬрд░ рддреБрдореНрд╣реА рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛ -rm рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдерд╛рдВрдмреЗрд▓, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рд╡реНрдпрд╛рдкрд▓реЗрд▓реА рд╕рд░реНрд╡ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдореЛрдХрд│реА рд╣реЛрдИрд▓.

рдбрд┐рд╕реНрдХ рдкреНрд░рддрд┐рдорд╛ рд╡рд╛рдкрд░рдгреЗ

рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА, рдЕрдиреЗрдХ рд╢рдВрднрд░ рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдЪрд╛ рдЖрдХрд╛рд░ рдкреВрд░реНрдгрдкрдгреЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрддрд╛: рдЙрдмрдВрдЯреВ рдкреНрд░рддрд┐рдореЗрдЪреЗ рд╡рдЬрди 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)

рдЖрдореНрд╣реА prune subcommand рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ:

$ 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)

рдЦрдВрдбрд╛рдиреБрд╕рд╛рд░ рдбрд┐рд╕реНрдХ рд╡рд╛рдкрд░

рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдбреЗрдЯрд╛ рд╕рд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рд╡реНрд╣реЙрд▓реНрдпреВрдордЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЗрддрд░ рдорд╛рд░реНрдЧрд╛рдиреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрд╡реНрд╣ рдХрд░рд╛рдпрдЪреЗ рдЕрд╕рддреАрд▓. рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгрдЬреЗ рдбреЗрдЯрд╛рдмреЗрд╕.

рдЪрд▓рд╛ рдПрдХ MongoDB рдХрдВрдЯреЗрдирд░ рд▓рд╛рдБрдЪ рдХрд░реВ, рдХрдВрдЯреЗрдирд░рд╡рд░ рдмрд╛рд╣реНрдп рд╡реНрд╣реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░реВ рдЖрдгрд┐ рддреНрдпрд╛рддреВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдмреЕрдХрдЕрдк рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░реВ (рдЖрдордЪреНрдпрд╛рдХрдбреЗ рддреЗ bck.json рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ):

# 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

рдбреЗрдЯрд╛ рд╣реЛрд╕реНрдЯ рдорд╢реАрдирд╡рд░ /var/lib/docker/volumes рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рд╕реНрдерд┐рдд рдЕрд╕реЗрд▓. рдкрдг рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рд╡рд╛рдЪрди-рд▓реЗрдЦрдирд╛рдЪреНрдпрд╛ рдкрд╛рддрд│реАрд╡рд░ рдХрд╛ рдирд╛рд╣реА? рдХрд╛рд░рдг рдореЛрдВрдЧреЛрдбреАрдмреА рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ рдбреЙрдХрд░рдлрд╛рдЗрд▓рдордзреНрдпреЗ, /рдбреЗрдЯрд╛/рдбреАрдмреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЬреЗрдереЗ рдореЛрдВрдЧреЛрдбреАрдмреА рддреНрдпрд╛рдЪрд╛ рдбреЗрдЯрд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ) рд╡реНрд╣реЙрд▓реНрдпреВрдо рдореНрд╣рдгреВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдбреЙрдХрд░ рдЯрд┐рдкрд╛: рддреБрдордЪреЗ рдорд╢реАрди рдЬрдВрдХ рд╕рд╛рдл рдХрд░рд╛

рд╕рд╛рдЗрдб рдЯреАрдк: рдбреЗрдЯрд╛ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдорд╛ рддреНрдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реНрд╣реЙрд▓реНрдпреВрдо рд╡рд╛рдкрд░рддрд╛рдд.

рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА MongoDB рд╕рд╣ рдкреБрд░реЗрд╕реЗ рдЦреЗрд│рддреЛ рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░ рдерд╛рдВрдмрд╡рддреЛ (рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рд╣рдЯрд╡реВ) рддреЗрд╡реНрд╣рд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдо рд╣рдЯрд╡рд┐рд▓рд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рдЬреЛрдкрд░реНрдпрдВрдд рдЖрдореНрд╣реА рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдХрдорд╛рдВрдбрд╕рд╣ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╣рдЯрд╡рдд рдирд╛рд╣реА рддреЛрдкрд░реНрдпрдВрдд рддреЗ рдЖрдордЪреА рдореМрд▓реНрдпрд╡рд╛рди рдбрд┐рд╕реНрдХ рдЬрд╛рдЧрд╛ рдШреЗрдд рд░рд╛рд╣реАрд▓:

$ 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 рдордзреНрдпреЗ, рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдЯреВрд▓рдореБрд│реЗ рдкреНрд░рддрд┐рдорд╛ рдирд┐рд░реНрдорд┐рддреА рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдХрд╛рд╣реА рдмрджрд▓ рдЭрд╛рд▓реЗ рдЖрд╣реЗрдд. рд╣реА рдЧреЛрд╖реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╡реЗрдЧ рд╡рд╛рдврд╡рддреЗ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЕрдиреБрдХреВрд▓ рдХрд░рддреЗ. рдпреЗрдереЗ рдЖрдореНрд╣реА рдпрд╛ рдЕрджреНрднреБрдд рд╕рд╛рдзрдирд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рддрдкрд╢реАрд▓рд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА; рдЖрдореНрд╣реА рдлрдХреНрдд рддреЗ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд╕реЗ рдХрд░рддреЗ рдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВ.

рд╕рдордЬрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдкреВрд░реНрдгрдкрдгреЗ рд╕рд╛рдзрд╛ Node.Js рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗ:

  • index.js рдлрд╛рдЗрд▓ рдПрдХ рд╕рд╛рдзрд╛ HTTP рд╕рд░реНрд╡реНрд╣рд░ рд╕реБрд░реВ рдХрд░рддреЗ рдЬреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдирдВрддреАрд▓рд╛ рдПрдХрд╛ рдУрд│реАрдиреЗ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрддреЗ:
  • package.json рдлрд╛рдЗрд▓ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ, рдЬреНрдпрд╛рдкреИрдХреА рдлрдХреНрдд рдПрдХреНрд╕рдкреНрд░реЗрд╕рдЬреЗрдЪрд╛ рд╡рд╛рдкрд░ HTTP рд╕рд░реНрд╡реНрд╣рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ:

$ 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 .

рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдЪрд╛ рд╡рд╛рдкрд░ рддрдкрд╛рд╕рд▓реНрдпрд╛рд╕, рдлрдХреНрдд рдмреЗрд╕ рдЗрдореЗрдЬ (рдиреЛрдб:резрей-рдЕрд▓реНрдкрд╛рдЗрди) рдЖрдгрд┐ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдЗрдореЗрдЬ (рдЕреЕрдк:рез.реж) рдЬрд╛рдЧрд╛ рдШреЗрдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддреЛ:

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

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рд╡рд╛рдкрд░реВрди рдЖрдордЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рджреБрд╕рд░реА рдЖрд╡реГрддреНрддреА рдмрдирд╡реВ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд DOCKER_BUILDKIT рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ 1 рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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

рдЬрд░ рдЖрдкрдг рдЖрддрд╛ рдбрд┐рд╕реНрдХрдЪрд╛ рд╡рд╛рдкрд░ рддрдкрд╛рд╕рд▓рд╛, рддрд░ рдмрд┐рд▓реНрдб рдХреЕрд╢реЗ (buid-cache) рдЖрддрд╛ рддреЗрдереЗ рдЧреБрдВрддрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рджрд┐рд╕реЗрд▓:

$ 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

рд╕рд░реНрд╡ рд╕рд╛рдл рдХрд░рд╛!

рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░, рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рдЦрдВрдбрд╛рдВрдиреА рд╡реНрдпрд╛рдкрд▓реЗрд▓реА рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рдХрдбреЗ рдкрд╛рд╣рд┐рд▓реЗ. prune subcommand рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдордзреНрдпреЗ рдорджрдд рдХрд░рддреЗ. рдкрд░рдВрддреБ рддреЗ рдбреЙрдХрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рд╛рд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рддреЗ рдЬреЗ рдХрд╛рд╣реА рдХрд░реВ рд╢рдХрддреЗ рддреЗ рд╕рд╛рдл рдХрд░реЗрд▓:

$ 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]

рдЬрд░ рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рддреБрдореНрд╣реА рдбреЙрдХрд░ рдЪрд╛рд▓рд╡рдгрд╛рд░реНтАНрдпрд╛ рдорд╢реАрдирд╡рд░ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд╡рд╛рдЪрд╡рдд рдЕрд╕рд╛рд▓, рддрд░ рд╡реЗрд│реЛрд╡реЗрд│реА рд╣реА рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рдгреЗ рд╣реА рд╕рд╡рдп рдЭрд╛рд▓реА рдкрд╛рд╣рд┐рдЬреЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛