рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рдЬрдВрдХрдХреЛ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рдЬрдВрдХрдХреЛ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд╣реЗ рд╣рд╛рдмрд░! рдо рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рдирд╛рдХрд░реНрд╖рдгрдорд╛ рд▓реЗрдЦрдХреЛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫреБ "рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдерд╛рдиреАрдп рдореЗрд╕рд┐рди рд╕рдлрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН" рд▓реЗрдЦрдХ рд▓реБрдХ рдЬреБрдЧрд░реА.

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


рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рдЬрдВрдХрдХреЛ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

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

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

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

$ docker system df

рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рдЬрдВрдХрдХреЛ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

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

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

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

рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рддрдкрд╛рдИрдВрд▓реЗ рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рдирдорд╛ рдХрдиреНрдЯреЗрдирд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, /var/lib/docker рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВ рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдирд┐рдореНрдирд▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ:

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

рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдХреЗрд╣реА рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ, рдзреЗрд░реИ рд╕рдп рдореЗрдЧрд╛рдмрд╛рдЗрдЯрдХреЛ рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдкреВрд░реНрдгрддрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдерд┐рдпреЛ: рдПрдХ Ubuntu рдЫрд╡рд┐ 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)

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

рдбрдХрд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВ: рдЬрдВрдХрдХреЛ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд╕рд╛рдЗрдб рдиреЛрдЯ: рдзреЗрд░реИ рддрд╕реНрдмрд┐рд░рд╣рд░реВ рдЬрд╕рд▓реЗ рдбрд╛рдЯрд╛ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрдиреБрдкрд░реНрдЫ рддреНрдпреЛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рднреЛрд▓реНрдпреБрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред

рдЬрдм рд╣рд╛рдореА MongoDB рд╕рдБрдЧ рдкрд░реНрдпрд╛рдкреНрдд рдЦреЗрд▓реНрдЫреМрдВ рд░ рдХрдиреНрдЯреЗрдирд░ рд░реЛрдХреНрдЫреМрдВ (рд╡рд╛ рд╣реБрдирд╕рдХреНрдЫ рдореЗрдЯрд╛рдЙрдБрдЫреМрдВ), рднреЛрд▓реНрдпреБрдо рдореЗрдЯрд┐рдиреЗ рдЫреИрдиред рдпрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдмрд╣реБрдореВрд▓реНрдп рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд▓рд┐рди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫ рдЬрдмрд╕рдореНрдо рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рдореНрди рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдореЗрдЯрд╛рдЙрдБрджреИрдиреМрдВ:

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

рдареАрдХ рдЫ, рд╡рд╛ рд╣рд╛рдореА prune subcommand рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рдЪрд┐рдд рдЫ:

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

рдорд╛рдиреМрдВ рд╣рд╛рдореАрд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░рд▓ 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"
      }
    }

рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдлрд╛рдЗрд▓ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

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

BuildKit рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдЧрд░реМрдВ:

$ 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 рдЪрд░рд▓рд╛рдИ рез рдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

$ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди