Docker Tips: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹ Junk

Docker Tips: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹ Junk

αžŸαž½αžŸαŸ’αžαžΈ αž αžΆαž”! αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αž”αž„αŸ’αž αžΆαž‰αž‡αžΌαž“αž’αŸ’αž“αž€αž“αžΌαžœαž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘ "αž‚αž“αŸ’αž›αžΉαŸ‡ Docker: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€" αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ Luc Juggery.

αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Docker αž”αŸ’αžšαžΎαž‘αŸ†αž αŸ†αžαžΆαžŸαžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž αžΎαž™αž™αžΎαž„αž€αŸαž“αžΉαž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαž€αž‘αŸ†αž αŸ†αž“αŸαŸ‡αž…αŸαž‰αž–αžΈαžŸαŸ†αžŽαž›αŸ‹αž“αŸƒαžšαžΌαž”αž—αžΆαž– αž“αž·αž„αž’αž»αž„αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž”αŸ’αžšαžΎαž•αž„αžŠαŸ‚αžšαŸ”


Docker Tips: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹ Junk

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαžšαž»αž”

Docker αž‚αžΊαž‡αžΆαžšαžΏαž„αžŠαŸαžαŸ’αžšαž‡αžΆαž€αŸ‹αž˜αž½αž™ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“αž˜αž“αž»αžŸαŸ’αžŸαžαž·αž…αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αžŸαž„αŸ’αžŸαŸαž™αžœαžΆαžŸαž–αŸ’αžœαžαŸ’αž„αŸƒαž“αŸαŸ‡αŸ” αž€αžΆαž›αž–αžΈαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“ αž•αž›αž·αžαž•αž›αž“αŸαŸ‡αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž™αžΎαž„αž“αžΌαžœαžœαž·αž’αžΈαžαŸ’αž˜αžΈαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹ αž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αžŽαžΆαž˜αž½αž™ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αž“αž’αžΆαž“ CPU αž“αž·αž„ RAM αž™αŸ‰αžΆαž„αž…αŸ’αžšαžΎαž“αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž“αŸαŸ‡ (αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸαŸ‡αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αž) Docker αž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž•αž›αž·αžαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž—αžΆαž–αžšαžΈαž€αžšαžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž‡αžΈαžœαž·αžαžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž“αŸαŸ‡αž˜αž€αž€αŸ’αž“αž»αž„αžαž˜αŸ’αž›αŸƒαž˜αž½αž™αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžš αž‘αžΆαž‰αž™αž€ αž¬αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αŸ” αž αžΎαž™β€‹αž™αžΎαž„β€‹αž”αž„αŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž…αŸ†αžŽαŸ„αž˜β€‹αžšαž”αžŸαŸ‹β€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αžβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž‘αŸ†αž αŸ†β€‹αžαžΆαžŸαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αž‚αž·αžαžαžΆαžαžΎ Docker αž–αž·αžαž‡αžΆαž™αž€αž‘αŸ†αž αŸ†αž”αŸ‰αž»αž“αžŽαžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αžŠαŸ„αž™αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αŸ–

$ docker system df

Docker Tips: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹ Junk

αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαžŸαžšαž”αžŸαŸ‹ Docker αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ–

  • αžšαžΌαž”αž—αžΆαž– - αž‘αŸ†αž αŸ†αžšαžΌαž”αž—αžΆαž–αžŸαžšαž»αž”αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αžšαžΌαž”αž—αžΆαž– αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
  • αž’αž»αž„ - αž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αž“αŸƒαž‘αŸ†αž αŸ†αžαžΆαžŸαžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŠαŸ„αž™αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž˜αžΆαž“αž“αŸαž™αžαžΆαž”αžšαž·αž˜αžΆαžŽαžŸαžšαž»αž”αž“αŸƒαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž’αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸƒαž’αž»αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹);
  • αž”αžšαž·αž˜αžΆαžŽαž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€ - αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž˜αŸ‰αŸ„αž“αž‘αŸ…αž’αž»αž„;
  • αž”αž„αŸ’αž€αžΎαžαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ - αž―αž€αžŸαžΆαžšαž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž– (αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ BuildKit αžŠαŸ‚αž›αž˜αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ Docker αž€αŸ†αžŽαŸ‚ 18.09)αŸ”

αžαŸ’αž‰αž»αŸ†αž—αŸ’αž“αžΆαž›αŸ‹αžαžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž•αŸ’αž‘αŸαžšαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸαŸ‡ αž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαž…αž„αŸ‹αžŸαž˜αŸ’αž’αžΆαžαžαžΆαžŸαžŸαŸ†αžšαžΆαž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž’αŸ’αžœαžΎαž±αŸ’αž™αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαžŠαŸαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž˜αžΆαž“αž‡αžΈαžœαž·αžαž‘αžΎαž„αžœαž·αž‰ (αž…αŸ†αžŽαžΆαŸ†αŸ– αž‡αžΆαž–αž·αžŸαŸαžŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αž„αŸ‹αžαŸ’αž›αŸƒαž‡αž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‡αžΆαžšαŸ€αž„αžšαžΆαž›αŸ‹αžαŸ‚)αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαžŸαžŠαŸ„αž™αž’αž»αž„

αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž―αž€αžŸαžΆαžš αž“αž·αž„αžαžαž―αž€αžŸαžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αžαž /var/lib/docker αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‚αž½αžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αŸ–

  • ថត /var/lib/docker/containers/container_ID – αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹ JSON αŸ” αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž›αž˜αŸ’αž’αž·αžαž–αŸαž€ αž€αŸαžŠαžΌαž…αž‡αžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž“ αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž‡αžΆαžšαžΏαž™αŸ—αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αžαžΆαžŸαž–αŸαž‰αŸ”
  • αžαžαž―αž€αžŸαžΆαžš /var/lib/docker/overlay2 αž˜αžΆαž“αž•αŸ’αž‘αž»αž€αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž’αžΆαž“-សរសេរ (αž‡αžΆαž“αŸ‹αž›αžΎ2 αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž–αŸαž‰αž…αž·αžαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž›αžΈαž“αž»αž…αž—αžΆαž‚αž…αŸ’αžšαžΎαž“)αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αžœαžΆ αž“αŸ„αŸ‡αžœαžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž“αŸαŸ‡αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αŸ”

αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžšαž˜αŸƒαž˜αžΎαž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž› Docker αžŠαŸαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ αžŠαŸ‚αž›αž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αž˜αžΆαž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžš αž¬αžšαžΌαž”αž—αžΆαž–αžŸαžΆαž„αžŸαž„αŸ‹αŸ” αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αŸ†αž αŸ†αžαžΆαžŸαžšαž”αžŸαŸ‹αžœαžΆαž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

$ 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 αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž»αž„αžαžΊαž“αŸαžš αž“αŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžˆαž”αŸ‹ αž“αŸ„αŸ‡αž‘αŸ†αž αŸ†αžαžΆαžŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžœαžΆαž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αž›αŸ‚αž„αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαžΌαž”αž—αžΆαž–αžŒαžΈαžŸ

αž€αžΆαž›αž–αžΈαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“ αž‘αŸ†αž αŸ†αžšαžΌαž”αž—αžΆαž–αž‡αžΆαž…αŸ’αžšαžΎαž“αžšαž™αž˜αŸαž€αžΆαž”αŸƒαž‚αžΊαž’αž˜αŸ’αž˜αžαžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ– αžšαžΌαž”αž—αžΆαž–αž’αŸŠαžΌαž”αŸŠαž»αž“αž‘αžΌαž˜αžΆαž“αž‘αž˜αŸ’αž„αž“αŸ‹ 600 αž˜αŸαž€αžΆαž”αŸƒ αž αžΎαž™αžšαžΌαž”αž—αžΆαž– Microsoft .Net αž˜αžΆαž“αž‘αž˜αŸ’αž„αž“αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž„αŸƒαžŠαŸαž€αŸ’αžšαŸ€αž˜αž€αŸ’αžšαŸ†αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡ αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αžαŸ‚αž˜αž½αž™αž’αžΆαž…αž…αŸ†αžŽαžΆαž™αž…αŸ’αžšαžΎαž“αž›αžΎαž‘αŸ†αž αŸ†αžαžΆαžŸαž‘αŸ†αž“αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž€αž˜αŸ’αžšαž·αžαžšαžœαžΆαž„αžšαžΌαž”αž—αžΆαž–αž€αŸαžŠαŸ„αž™αŸ” αžαŸ’αž„αŸƒαž“αŸαŸ‡ - αžŸαžΌαž˜αžŸαžšαžŸαžΎαžšαžŠαž›αŸ‹αž’αŸ’αž“αž€αžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ - αžšαžΌαž”αž—αžΆαž–αž˜αžΆαž“αž‘αž˜αŸ’αž„αž“αŸ‹αžαž·αž… αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸαžŠαŸ„αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ†αž–αŸαž‰αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“αžαŸ’αž›αŸ‡αŸ”

αž˜αžΆαž“αžšαžΌαž”αž—αžΆαž–αž‡αžΆαž…αŸ’αžšαžΎαž“αž”αŸ’αžšαž—αŸαž‘ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αŸ–

  • αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαžΌαž”αž—αžΆαž–αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž› - αž–αž½αž€αžœαžΆαž˜αž·αž“αž’αžΆαž…αž›αž»αž”αž”αžΆαž“αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαžΌαž”αž—αžΆαž– "αž•αŸ’αžŸαŸαž„αž‘αŸ€αž" αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”
  • αžšαžΌαž”αž—αžΆαž– dangling αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αŸ„αž„αžŠαŸ„αž™αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŽαžΆαž˜αž½αž™αž‘αžΎαž™ - αž–αž½αž€αž‚αŸαž’αžΆαž…αž›αž»αž”αž”αžΆαž“αŸ”
  • αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎβ€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž‰αŸ’αž‡αžΆβ€‹αžαžΆαž„β€‹αž€αŸ’αžšαŸ„αž˜β€‹αž“αŸαŸ‡ αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž˜αžΎαž›β€‹αžšαžΌαž”αž—αžΆαž–β€‹αžŠαŸ‚αž›β€‹αž‡αžΆαž”αŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αžšαž”αžŸαŸ‹β€‹αž’αŸ’αž“αž€αŸ–

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

$ 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

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž—αŸ’αž›αžΆαž˜αŸ—αž™αžΎαž„αž…αž„αŸ‹αž›αž»αž”αžšαžΌαž”αž—αžΆαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„ (αž αžΎαž™αž˜αž·αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚ dangling) αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αž½αž™αž“αŸ„αŸ‡ αž™αžΎαž„αž’αžΆαž…αž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž”αžΆαž“αŸ–

$ 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 αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž˜αž·αž“αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž’αžΆαž“-αžŸαžšαžŸαŸαžšαž“αŸƒαž’αž»αž„? αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ Dockerfile αž“αŸƒαžšαžΌαž”αž—αžΆαž– MongoDB ថត /data/db (αžŠαŸ‚αž› MongoDB αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αžœαžΆαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαž—αžΆαž‚αŸ”

Docker Tips: αžŸαž˜αŸ’αž’αžΆαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹ Junk

αž…αŸ†αžŽαžΆαŸ†αž…αŸ†αž αŸ€αž„αŸ– αžšαžΌαž”αž—αžΆαž–αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž„αŸ’αž€αžΎαžαž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžšαž·αž˜αžΆαžŽαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ„αŸ‡αŸ”

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž›αŸαž„αž±αŸ’αž™αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‡αžΆαž˜αž½αž™ MongoDB αž αžΎαž™αž”αž‰αŸ’αžˆαž”αŸ‹ (αž¬αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž›αž»αž”) αž€αž»αž„αžαžΊαž“αŸαžš αž€αž˜αŸ’αžšαž·αžαžŸαŸ†αž‘αŸαž„αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αž‘αžΎαž™αŸ” αžœαžΆαž“αžΉαž„αž”αž“αŸ’αžαž™αž€αž‘αŸ†αž αŸ†αžαžΆαžŸαžŠαŸαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžšαž”αžŸαŸ‹αž™αžΎαž„αžšαž αžΌαžαžŠαž›αŸ‹αž™αžΎαž„αž›αž»αž”αžœαžΆαž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΌαž…αž“αŸαŸ‡αŸ–

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

αž¬αž™αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž„ prune αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αž™αžΎαž„αžšαž½αž…αž αžΎαž™αŸ–

$ 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:~$

αž”αŸ’αžšαžΎαžαžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαžΌαž”αž—αžΆαž–

αž“αŸ…αž€αŸ’αž“αž»αž„ Docker 18.09 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŠαŸ„αž™αžŸαžΆαžšαž§αž”αž€αžšαžŽαŸ BuildKit αŸ” αžšαžΏαž„αž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αž–αž·αž…αžΆαžšαžŽαžΆαž›αž˜αŸ’αž’αž·αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž§αž”αž€αžšαžŽαŸαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αž“αŸαŸ‡αž‘αŸ αž™αžΎαž„αž“αžΉαž„αž•αŸ’αžαŸ„αžαžαŸ‚αž›αžΎαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αŸ†αž αŸ†αžαžΆαžŸαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž™αžΎαž„αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Node.Js αžŸαžΆαž˜αž‰αŸ’αž‰αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ–

  • αž―αž€αžŸαžΆαžš index.js αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ HTTP αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαŸ‚αž›αž†αŸ’αž›αžΎαž™αžαž”αž‡αžΆαž˜αž½αž™αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‘αŸ…αž“αžΉαž„αžŸαŸ†αžŽαžΎαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αŸ–
  • αž―αž€αžŸαžΆαžš package.json αž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™ αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ‚ expressjs αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ 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"
      }
    }

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

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αžαžΆαž˜αžšαž”αŸ€αž”αž’αž˜αŸ’αž˜αžαžΆ αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαžΎ BuildKitαŸ–

$ docker build -t app:1.0 .

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αŸ†αž αŸ†αžαžΆαžŸ αž™αžΎαž„αž’αžΆαž…αžƒαžΎαž‰αžαžΆαž˜αžΆαž“αžαŸ‚αžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ (node:13-alpine) αž“αž·αž„αžšαžΌαž”αž—αžΆαž–αž‘αž·αžŸαžŠαŸ… (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

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαŸ‚αž‘αžΈαž–αžΈαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαŸ„αž™αž”αŸ’αžšαžΎ BuildKit αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž’αžαŸαžš 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 αž‡αž½αž™αž™αžΎαž„αž‡αžΆαž˜αž½αž™αž“αŸαŸ‡αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαž“αŸ…αž€αž˜αŸ’αžšαž·αžαž”αŸ’αžšαž–αŸαž“αŸ’αž’ docker αž αžΎαž™αžœαžΆαž“αžΉαž„αžŸαž˜αŸ’αž’αžΆαžαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αŸ–

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

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŸαž“αŸ’αžŸαŸ†αž‘αŸ†αž αŸ†αžαžΆαžŸαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Docker αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αž‚αž½αžšαžαŸ‚αž€αŸ’αž›αžΆαž™αž‡αžΆαž‘αž˜αŸ’αž›αžΆαž”αŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹