рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рдорд╢реАрди рд╕реЗ рдХрдмрд╛рдбрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рдорд╢реАрди рд╕реЗ рдХрдмрд╛рдбрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

рдирдорд╕реНрддреЗ, рд╣рдмрд░! рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдБ "рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ" рд▓реЗрдЦрдХ рд▓реНрдпреВрдХ рдЬреБрдЧрд░реА.

рдЖрдЬ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдбреЙрдХрд░ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЗ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рдЕрдкреНрд░рдпреБрдХреНрдд рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕реНрдХреНрд░реИрдк рд╕реЗ рдХреИрд╕реЗ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред


рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рдорд╢реАрди рд╕реЗ рдХрдмрд╛рдбрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

рдХреБрд▓ рдЦрдкрдд

рдбреЙрдХрд░ рдПрдХ рдЕрдЪреНрдЫреА рдЪреАрдЬрд╝ рд╣реИ, рд╢рд╛рдпрдж рдЖрдЬ рдмрд╣реБрдд рдХрдо рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИред рдХреБрдЫ рд╣реА рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЗрд╕ рдЙрддреНрдкрд╛рдж рдиреЗ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдмрдирд╛рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рддрд░реАрдХрд╛ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рд╕реАрдкреАрдпреВ рдФрд░ рд░реИрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдФрд░ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реЛрдЧреА) рдбреЙрдХрд░ рдиреЗ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд░рд▓ рдФрд░ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдзреБрдирд┐рдХ рдЬреАрд╡рди рдХреА рдпреЗ рд╕рднреА рдЦреБрд╢рд┐рдпрд╛рдБ рдПрдХ рдХреАрдордд рдкрд░ рдЖрддреА рд╣реИрдВред рдЬрдм рд╣рдо рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдЯрд┐рд▓ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдФрд░ рд╣рдо рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВред

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

$ docker system df

рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рдорд╢реАрди рд╕реЗ рдХрдмрд╛рдбрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдбреЙрдХрд░ рдХреЗ рдбрд┐рд╕реНрдХ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:

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

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

рдХрдВрдЯреЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ

рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ /var/lib/docker рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ:

  • рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ /var/lib/docker/containers/container_ID - рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╡реЗрдВрдЯ рд▓реЙрдЧ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧ, рд╕рд╛рде рд╣реА рдРрд╕реЗ рд▓реЙрдЧ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдИ рдирд╣реАрдВ рдкрдврд╝рддрд╛ рдпрд╛ рдЕрдиреНрдпрдерд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рдбрд┐рд╕реНрдХ рдХреЗ рднрд░ рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред
  • /var/lib/docker/overlay2 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд░реАрдб-рд░рд╛рдЗрдЯ рдкрд░рддреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЕрдзрд┐рдХрд╛рдВрд╢ Linux рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ рдУрд╡рд░рд▓реЗ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 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдФрд░ рдЕрдкрдиреЗ рдЕрдВрджрд░ рдмрд┐рд▓реНрдХреБрд▓ рдЗрд╕реА рдЖрдХрд╛рд░ рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ 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 рдлрд╝рд╛рдЗрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рд░реАрдб-рд░рд╛рдЗрдЯ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рдУрд╡рд░рд▓реЗ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)

рд╕рд╛рдЗрдб рдиреЛрдЯреНрд╕: рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп -rm рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рдпрд╣ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд╛рд░рд╛ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдореБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдХрдИ рд╕реМ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреА рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдерд╛: рдПрдХ рдЙрдмрдВрдЯреВ рдЫрд╡рд┐ рдХрд╛ рд╡рдЬрди 600 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдерд╛, рдФрд░ рдПрдХ Microsoft .Net рдЫрд╡рд┐ рдХрд╛ рд╡рдЬрди рдХрдИ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдерд╛ред рдЙрди рдЦрд╝рд░рд╛рдм рджрд┐рдиреЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдкрд░ рдмрдбрд╝рд╛ рдЕрд╕рд░ рдкрдбрд╝ рд╕рдХрддрд╛ рдерд╛, рднрд▓реЗ рд╣реА рдЖрдк рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрддрд░ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред рдЖрдЬ - рдорд╣рд╛рдиреЛрдВ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░реЗрдВ - рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╡рдЬрди рдмрд╣реБрдд рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕рд╛рд╡рдзрд╛рдирд┐рдпрд╛рдВ рдирд╣реАрдВ рдмрд░рддрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕реА рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реАрдзреЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ:

  • рдордзреНрдпрд╡рд░реНрддреА рдЫрд╡рд┐рдпрд╛рдВ, рдЬрд┐рдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреНрдп рдЫрд╡рд┐рдпрд╛рдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВ - рдпрджрд┐ рдЖрдк рдЗрди "рдЕрдиреНрдп" рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рд▓рдЯрдХрддреА рд╣реБрдИ рдЫрд╡рд┐рдпрд╛рдВ рдордзреНрдпрд╡рд░реНрддреА рдЫрд╡рд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓рдЯрдХрддреА рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ

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

рдЖрдЗрдП рдПрдХ 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 рдЫрд╡рд┐ рдХреЗ Dockerfile рдореЗрдВ, /data/db рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЬрд╣рд╛рдВ MongoDB рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ) рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдбреЙрдХрд░ рдпреБрдХреНрддрд┐рдпрд╛рдБ: рдЕрдкрдиреА рдорд╢реАрди рд╕реЗ рдХрдмрд╛рдбрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

рд╕рд╛рдЗрдб рдиреЛрдЯ: рдХрдИ рдЫрд╡рд┐рдпрд╛рдВ рдЬреЛ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИрдВ, рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред

рдЬрдм рд╣рдо 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 рд╕рд░реНрд╡рд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ Expressjs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

$ 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"
      }
    }

рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП Dockerfile рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

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

рдЖрдЗрдП BuildKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдмрд╕ DOCKER_BUILDKIT рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ 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]

рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдбреЙрдХрд░ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрди рдкрд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдмрдЪрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рдПрдХ рдЖрджрдд рдмрди рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ