Docker - ទំព័រដើម
អ្វីទៅជា Docker?
ក្នុងន័យសាមញ្ញ Docker ជាកម្មវិធីមួយដែលសម្រួលដំណើរការនៃការបង្កើតកម្មវិធី, គ្រប់គ្រងកម្មវិធីនិងចែកចាយកម្មវិធីទៅកន្លែងផ្សេងទៀត។ វាធ្វើដូចនេះដោយធ្វើឲ្យគ្រប់ប្រព័ន្ធប្រតិបត្តិការរបស់កុំព្យូទ័រទាំងអស់អាចទាញយកកម្មវិធីនិងដំណើរការកម្មវិធីណាមួយដោយមានភាពងាយស្រួល និងគ្មានការកំណត់រចនាសម្ព័ន្ធអីច្រើននោះទេ។
Docker ប្រើ
containerសម្រាប់ភ្ជាប់ទៅកាន់ប្រព័ន្ធប្រតិបត្តិការរបស់កុំព្យូទ័រ ដើម្បីអាចប្រតិបត្តិនូវកម្មវិធីបាន។ វាអនុញ្ញាតឲ្យកម្មវិធីអាចប្រើប្រាស់នូវLinux kernelដូចគ្នាជាលក្ខណៈsystemដែលភ្ចាប់នៅលើកុំព្យូទ័រ, ជាជាងការបង្កើតនូវvirtual operating systemទាំងមូល។Docker ត្រូវបានបង្កើតឡើងដោយលោក
Kamel Founadi, លោកSolomon HykesនិងលោកSebastien Pahlនិងប្រើភាសាGolang Programming Language។ មកដល់ពេលនេះ Docker បានបង្កើតបានរយះពេល 10 ឆ្នាំហើយគិតត្រឹមពី ថ្ងៃទី20 ខែមិនា ឆ្នាំ2013។Docker រួមបញ្ចូលជាមួយនឹងសមាសធាតុជាច្រើនដូចជា Docker client, Docker server, Docker machine, Docker hub, Docker composes។ល។
អ្វីទៅជា Docker Container?
- Docker Container ជា 
virtual machineដែលមានលក្ខណៈlightweight។ វាអនុញ្ញាតឲ្យអ្នកអភិវឌ្ឍអាចវេចខ្ចប់នូវកម្មវិធីដែលរួមបញ្ចូលនូវlibrariesនិងdependenciesទាំងអស់ដែលពាក់ព័ន្ធជាមួយនឹងកម្មវិធី, ហើយដឹកតាមនាវាជាលក្ខណៈកញ្ចប់មួយៗ។ 

- អត្ថប្រយោជន៍នៃការប្រើប្រាស់ 
docker containerគឺអ្នកមិនចាំបាច់ត្រូវការបែងចែកRAMនិងទំហំdiskសម្រាប់ប្រតិបត្តិកម្មវិធីអីនោះទេ គឺជាក់ស្តែងវានឹងបង្កើតនូវការផ្ទុកនិងទំហំដោយស្វ័យប្រវត្តិដោយគិតទៅតាមការទាមទាររបស់កម្មវិធី។ 
អ្វីទៅជា Virtual Machine?
- Virtual Machine ជាកម្មវិធីដែលអនុញ្ញាតឲ្យយើងអាចធ្វើការទាញយកនិងប្រើប្រាស់នូវប្រព័ន្ធប្រតិបត្តិការផ្សេងៗ(
Windows,Linux, និងDebian) នៅក្នុងពេលដំណាលគ្នានៅលើម៉ាស៊ីនរបស់យើង។ ប្រព័ន្ធប្រតិបត្តិការដែលvirtual machineកំពុងដំណើរការគឺគេហៅថាvirtualized operating systems។ Virtualized Operating Systems ទាំងអស់នេះគឺអាចប្រតិបត្តិនូវកម្មវិធីនិងបំពេញភារកិច្ចដូចប្រព័ន្ធប្រតិបត្តិការពិតៗអញ្ចឹង។ 

Containers Vs. Virtual Machine
| Container | Virtual Machine | 
|---|---|
| Container គឺលឿនហើយមានតម្លៃថោក។ | Virtual Machine គឺយឺតហើយមានតម្លៃថ្លៃ។ | 
| គ្មានការខ្ជះខ្ជាយ memory។ | ខ្ជះខ្ជាយ memory។ | 
| វាប្រើប្រាស់ kernel ដូចគ្នា ប៉ុន្តែ distribution ខុសគ្នា។ | វាប្រើប្រាស់ប្រព័ន្ធប្រតិបត្តិឯករាជ្យជាច្រើន។ | 
ហេតុអ្វីត្រូវប្រើ Docker?

- Docker ត្រូវបានរចនាឡើងដើម្បីជាអត្ថប្រយោជន៍សម្រាប់អ្នកអភិវឌ្ឍនិងអ្នកគ្រប់គ្រងប្រព័ន្ធ។ ហេតុផលដែលអ្នកគួរប្រើ Docker គឺមានដូចខាងក្រោម:
- Docker អនុញ្ញាតឲ្យយើងងាយស្រួលក្នុងការដំឡើងនិងដំណើរការ 
softwareដោយមិនចាំបាច់ខ្វាយខ្វល់អំពីការរៀបចំនិងdependenciesអីនោះទេ។ - Developers ប្រើប្រាស់ Docker ដើម្បីលុបបំបាត់បញ្ហាម៉ាស៊ីន ពោលគឺនៅពេលដែលយើងដំណើរការកម្មវិធីនៅលើ Docker គឺវាមានភាព 
lightweightជាងការដំណើរការកម្មវិធីដោយផ្ទាល់។ - Operators ប្រើប្រាស់ Docker សម្រាប់ដំណើរការនិងគ្រប់គ្រងកម្មវិធីនៅក្នុង 
containersឲ្យដាច់ដោយឡែកពីគ្នា ដើម្បីងាយស្រួលក្នុងការគណនាបរិមាណ។ - Enterprises ប្រើប្រាស់ Docker សម្រាប់បង្កើតឡើងនូវ 
software delivery pipelinesដែលប្រកបទៅដោយសុវត្ថិភាព ដើម្បីបញ្ចូនមុខងារកម្មវិធីថ្មីឲ្យមានភាពឆាប់រហ័សនិងមានសុវត្ថិភាព។ 
 - Docker អនុញ្ញាតឲ្យយើងងាយស្រួលក្នុងការដំឡើងនិងដំណើរការ 
 
គុណសម្បត្តិរបស់ Docker
- គុណសម្បត្តិរបស់ Docker គឺមានដូចខាងក្រោម៖
- វាប្រើ 
memoryអស់តិច។ - វាផ្តល់នូវ 
lightweight virtualization។ - វាមិនទាមទារឲ្យមានប្រព័ន្ធប្រតិបត្តិការពេញលេញ ដើម្បីដំណើរការកម្មវិធីនោះទេ។
 - វាអនុញ្ញាតឲ្យអ្នកប្រើនូវ 
remote repositoryដើម្បីអាចចែករំលែកcontainerជាមួយអ្នកដទៃ។ 
 - វាប្រើ 
 
គុណវិបត្តិនៃ Docker
- គុណវិបត្តិរបស់ Docker គឺមានដូចខាងក្រោម៖
- វាបង្កើននូវភាពស្មុគស្មាញដោយសារតែមាននូវស្រទាប់បន្ថែម។
 - នៅក្នុង 
Docker, វាពិបាកនៅក្នុងការគ្រប់គ្រងចំនួនបរិមាណដ៏ធំនៃcontainer។ - មុខងារខ្លះដូចជា 
container self-registration,containers self-inspects, ចម្លងឯកសារពីhostទៅcontainer, និងអ្វីផ្សេងទៀតត្រូវបានបាត់នៅក្នុងDocker។ Dockerមិនមានដំណោះស្រាយដ៏ល្អសម្រាប់កម្មវិធីដែលទាមទារនូវrich graphical interface។
 
Docker Engine
- វាជា 
client server applicationដែលមានធាតុផ្សំសំខាន់ៗដូចខាងក្រោម៖Serverដែលជាប្រភេទកម្មវិធីដែលដំណើរការយូរហៅថាdaemon process។REST APIត្រូវបានប្រើដើម្បីបញ្ជាក់ពីចំណុចប្រទាក់នៃកម្មវិធីដែលអាចប្រើដើម្បីនិយាយទៅកាន់daemonហើយណែនាំឲ្យធ្វើអ្វីមួយ។Clientមានជាcommand line interfaceសម្រាប់ដាក់ពាក្យបញ្ជាទៅកាន់Server។
 
