αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈ Docker

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αŸ’αžšαžΎ Docker αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ‚αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’/αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž‚αž˜αŸ’αžšαŸ„αž„αž”αžŽαŸ’αžαžΆαž‰αŸ” αžαŸ’αž‰αž»αŸ†αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž’αŸ’αž“αž€αž’αžΆαž“ Habrakhabr αž“αžΌαžœαž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž“αŸƒαž’αžαŸ’αžαž”αž‘αžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ docker - "αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈ Docker".

តើ docker αž‡αžΆαž’αŸ’αžœαžΈ?

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

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

αžœαŸαž‘αž·αž€αžΆ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž“αž·αž˜αŸ’αž˜αž·αžαž€αž»αž„αžαžΊαž“αŸαžšαž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  • αž€αžΆαžšαžœαŸαž…αžαŸ’αž…αž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ (αž“αž·αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ) αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„ docker;
  • αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž’αž»αž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‘αŸ…αž€αŸ’αžšαž»αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ”
  • αžŠαžΆαž€αŸ‹αž’αž»αž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αž›αžΎαž€αž“αŸ’αž›αŸ‚αž„αž•αž›αž·αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αŸ’αž“αž»αž„αž–αž–αž€αŸ”

αžαžΎαžαŸ’αž‰αž»αŸ†αž’αžΆαž…αž”αŸ’αžšαžΎ docker αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈ?

αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž™αŸ‰αžΆαž„αžšαž αŸαžŸ

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

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

αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαžΆαž€αŸ‹αž…αŸαž‰ αž“αž·αž„αž›αžΆαžαžαŸ’αžšαžŠαžΆαž„

αžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎαž€αž»αž„αžαžΊαž“αŸαžš docker αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž”αž“αŸ’αž‘αž»αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€ Docker αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž‘αžΆαŸ†αž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αž¬αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž¬αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€αŸ”

αž›αž€αŸ’αžαžŽαŸˆαž…αž›αŸαž αž“αž·αž„αž‘αž˜αŸ’αž„αž“αŸ‹αžŸαŸ’αžšαžΆαž›αžšαž”αžŸαŸ‹ docker αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ docker αžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž¬αž”αž·αž‘αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž¬αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž›αŸ’αž”αžΏαž“αž“αŸƒ docker αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžœαžΆαž’αŸ’αžœαžΎαž“αŸ…αž‡αž·αžαž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ”

αž”αž“αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž”αž“αŸ’αž‘αž»αž€αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“

Docker αž˜αžΆαž“αž‘αž˜αŸ’αž„αž“αŸ‹αžŸαŸ’αžšαžΆαž› αž“αž·αž„αž›αžΏαž“αŸ” αžœαžΆαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ‚αž›αž’αž“αŸ‹ αž“αž·αž„αž…αŸ†αžŽαžΆαž™αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž…αŸ†αž–αŸ„αŸ‡αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ hypervisor αŸ” αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž•αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹ αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž cloud ឬ platform-as-service αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αŸαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž•αž„αžŠαŸ‚αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αž“αžΆαžαžαžΌαž… αž“αž·αž„αž˜αž’αŸ’αž™αž˜ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž–αžΈαž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αŸ”

αžŸαž˜αžΆαžŸαž’αžΆαžαž» Docker αž…αž˜αŸ’αž”αž„

Docker αž˜αžΆαž“αžŸαž˜αžΆαžŸαž—αžΆαž‚αžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαŸ–

  • DockerαŸ– αžœαŸαž‘αž·αž€αžΆαž“αž·αž˜αŸ’αž˜αž·αžαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž ;
  • Docker HubαŸ– αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΆαžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž»αž„ Docker αŸ”

αž…αŸ†αžŽαžΆαŸ†! Docker αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Docker

Docker αž”αŸ’αžšαžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ-αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ Docker αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αžŠαŸαž˜αž·αž“ Docker αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αž“αŸ’αž‘αž»αž€αž›αžΎαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αž’αž»αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž‘αžΆαŸ†αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ‚αž˜αž½αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž‘αŸ…αžŠαŸαž˜αž·αž“ docker αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžαžΆαž˜αžšαž™αŸˆαžšαž“αŸ’αž’ ឬ RESTful API αŸ”

αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈ Docker

αžŠαŸαž˜αž·αž“ Docker

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

αž’αžαž·αžαž·αž‡αž“ Docker

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

Docker αžαžΆαž„αž€αŸ’αž“αž»αž„

αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž› docker αž˜αžΆαž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαžΉαž„αž’αŸ†αž–αžΈαžŸαž˜αžΆαžŸαž—αžΆαž‚αž”αžΈαŸ–

  • αžšαžΌαž”αž—αžΆαž–
  • αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡
  • αž’αž»αž„

αžšαžΌαž”αž—αžΆαž–αŸ”

αžšαžΌαž”αž—αžΆαž– Docker αž‚αžΊαž‡αžΆαž‚αŸ†αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž’αžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžšαžΌαž”αž—αžΆαž–αž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Ubuntu αž‡αžΆαž˜αž½αž™ Apache αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž›αžΎαžœαžΆαŸ” αžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž’αž»αž„αŸ” Docker αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αžαŸ’αž˜αžΈ αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αž¬αž’αŸ’αž“αž€αž’αžΆαž…αž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž˜αž“αž»αžŸαŸ’αžŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžšαžΌαž”αž—αžΆαž–αž‚αžΊαž‡αžΆαž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž“αŸƒ docker buildαŸ”

αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡

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

.ΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

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

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαžΎ Docker αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡αž™αžΎαž„αžŠαžΉαž„αžαžΆαŸ–

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

αžαŸ„αŸ‡αž˜αžΎαž›αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžŸαž˜αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαŸ”

αžαžΎαžšαžΌαž”αž—αžΆαž–αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

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

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

αž”αŸαŸ‡αžŠαžΌαž„αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ ubuntu αžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹ Ubuntu ឬ fedora αžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ Fedora αŸ” αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαžšαžΌαž”αž—αžΆαž–αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αžαŸ’αž˜αžΈαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžšαžΌαž”αž—αžΆαž– apache αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαž‡αžΆαžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžŠαžΆαž‰αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž…αŸ†αžŽαžΆαŸ†! αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ Docker αž‘αžΆαž‰αžšαžΌαž”αž—αžΆαž–αž–αžΈαž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ Docker Hub αŸ”

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

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

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž˜αž½αž™αŸ” Dockerfile. Docker αž’αžΆαž“αžšαžΏαž„αž“αŸαŸ‡ Dockerfileαž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž– αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž αžΎαž™αžαŸ’αžšαž‘αž”αŸ‹αžšαžΌαž”αž—αžΆαž–αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”

αžαžΎαž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈ docker αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

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

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

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

αžαžΎαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

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

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αž»αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜?

αž¬αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ dockerαž¬αžŠαŸ„αž™αž”αŸ’αžšαžΎ RESTful API αž’αžαž·αžαž·αž‡αž“ docker αž”αŸ’αžšαžΆαž”αŸ‹αžŠαŸαž˜αž·αž“ docker αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž»αž„αžαžΊαž“αŸαžšαŸ”

$ sudo docker run -i -t ubuntu /bin/bash

αžαŸ„αŸ‡αž˜αžΎαž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ dockerαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αž˜αŸ’αžšαžΎαžŸ runαžŠαŸ‚αž›αž“αž·αž™αžΆαž™αžαžΆαž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αž˜αžΈαž˜αž½αž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž’αž”αŸ’αž”αž”αžšαž˜αžΆαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαž‚αžΊαž‡αžΆαž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αžšαžΌαž”αž—αžΆαž–αžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž’αž»αž„αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” ubuntu
  • αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” /bin/bash

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αŸ’αžšαžŽαžΆαžαŸ‹αž“αŸ…αž–αŸαž›αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡?

αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹ Docker αž’αŸ’αžœαžΎαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αž’αŸŠαžΌαž”αŸŠαž»αž“αž‘αžΌαŸ– docker αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸƒαžšαžΌαž”αž—αžΆαž– ubuntu αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž‘αžΆαž‰αž™αž€αžœαžΆαž–αžΈ αžŠαž»αž€αž‘αŸαžšαž αžΆαž”αŸ‹. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αžšαžΌαž”αž—αžΆαž–αžœαžΆαž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž’αž»αž„;
  • αž”αž„αŸ’αž€αžΎαžαž’αž»αž„αž˜αž½αž™αŸ– αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž› Docker αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž»αž„αžαžΊαž“αŸαžšαŸ”
  • αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš αž“αž·αž„αžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αžšαž·αžαž’αžΆαž“αž”αžΆαž“αžαŸ‚αŸ– αž’αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš αž αžΎαž™αžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž€αž˜αŸ’αžšαž·αžαž”αžΆαž“αžαŸ‚αž’αžΆαž“αŸ”
  • αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αžŽαŸ’αžαžΆαž‰/αžŸαŸ’αž–αžΆαž“αŸ– αž”αž„αŸ’αž€αžΎαžαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ docker αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ”
  • αž€αŸ†αžŽαžαŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IPαŸ– αžŸαŸ’αžœαŸ‚αž„αžšαž€αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“;
  • αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ– αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€;
  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž•αž›αž·αžαž›αž‘αŸ’αž’αž•αž›αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ– αž—αŸ’αž‡αžΆαž”αŸ‹ αž“αž·αž„αž€αžαŸ‹αžαŸ’αžšαžΆαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž› αž›αž‘αŸ’αž’αž•αž› αž“αž·αž„αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž€αŸ†αž αž»αžŸαžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž˜αžΆαž“αž’αž»αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž»αž„αžαžΊαž“αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αž‰αŸ’αžˆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŸαžΌαž˜αž›αž»αž”αž€αž»αž„αžαžΊαž“αŸαžšαŸ”

αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž”αžΆαž“αž”αŸ’αžšαžΎ

Docker αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Go αž“αž·αž„αž”αŸ’αžšαžΎαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαžαžΆαž„αž›αžΎαŸ”

αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡

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

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

αž”αž‰αŸ’αž‡αžΈαž“αŸƒ namespaces αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž› docker αž”αŸ’αžšαžΎαŸ–

  • pidαŸ– αž”αŸ†αž”αŸ‚αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš;
  • αžŸαŸ†αžŽαžΆαž‰αŸ‹αŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰;
  • ipcαŸ– αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž“αž’αžΆαž“ IPC αŸ” (ICP: InterProccess Communication);
  • mnt: αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αŸ†αžŽαž»αž…αž˜αŸ‰αŸ„αž“;
  • UTC: αžŠαžΎαž˜αŸ’αž”αžΈαž‰αŸ‚αž€αžαžΊαžŽαŸ‚αž› αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αŸ†αž“αžΆαž“αŸ‹ (UTC: Unix timesharing system)αŸ”

αž€αŸ’αžšαž»αž˜αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™

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

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαžŸαž αž—αžΆαž–

Union File Sysem ឬ UnionFS αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŸαŸ’αžšαž‘αžΆαž”αŸ‹ αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαžŸαŸ’αžšαžΆαž› αž“αž·αž„αž›αžΏαž“αŸ” Docker αž”αŸ’αžšαžΎ UnionFS αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹αŸ” Docker αž’αžΆαž…αž”αŸ’αžšαžΎαžœαŸ‰αžΆαžšαŸ’αž™αŸ‰αž„αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒ UnionFS αžšαž½αž˜αž˜αžΆαž“: AUFS, btrfs, vfs αž“αž·αž„ DeviceMapper αŸ”

αž‘αž˜αŸ’αžšαž„αŸ‹αž€αž»αž„αžαžΊαž“αŸαžš

Docker αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαž»αŸ†αžŠαŸ‚αž›αž™αžΎαž„αž αŸ…αžαžΆαž‘αž˜αŸ’αžšαž„αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαŸ” αž‘αž˜αŸ’αžšαž„αŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ libcontainer. Docker αž€αŸαž‚αžΆαŸ†αž‘αŸ’αžšαž‘αž˜αŸ’αžšαž„αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž”αŸ’αžšαž–αŸƒαžŽαžΈαž“αŸ…αž›αžΎαž›αžΈαž“αž»αž…αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž’αž·αž›αŸ” αžŸαŸŠαžΈαŸ” ស៊ី. αž“αŸ…αž–αŸαž›αž’αž“αžΆαž‚αž Docker αž’αžΆαž…αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αž˜αŸ’αžšαž„αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ BSD Jails ឬ Solaris Zones αŸ”

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

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