Docker - Architecture
មុននឹងអ្នកអាចរៀនពី Docker Architecture បានគឺអ្នកគួរតែដឹងអំពី Docker Daemon ជាមុនសិន។
តើ Docker daemon ជាអ្វី?
- Docker Daemon ដំណើរការនៅលើ
host operating system។ វាទទួលខុសត្រូវចំពោះដំណើរការcontainersដើម្បីគ្រប់គ្រងdocker services។ វាផ្តល់ជូននូវ Docker object ដូចជាimages,containers,networking, និងstorage។
Docker architecture
- Docker យកតម្រាបតាម Client-Server Architecture ដែលរួមបញ្ចូលជាមួយនឹង 3 សមាសធាតុសំខាន់ៗដែលមានដូចជា
Docker Client,Docker Host, និងDocker Registry។

1. Docker Client
- Docker Client ប្រើពាក្យបញ្ជានិង
REST APISដើម្បីទាក់ទងជាមួយនឹង Docker Daemon(Server)។ ពេលដែលclientsដំណើរការនូវពាក្យបញ្ជាណាមួយនៅលើdocker client terminalនោះវានឹងផ្ញើនូវពាក្យបញ្ជាមួយនោះទៅកាន់ Docker daemon។ Docker daemon នឹងទទួលបាននូវពាក្យបញ្ជានោះពីclientនៅក្នុងទម្រង់នៃពាក្យបញ្ជានិងREST API's request។
2. Docker Host
- Docker Host ប្រើសម្រាប់ផ្តល់នូវបរិយាកាសដើម្បីអាចប្រតិបត្តិនិងដំណើរការកម្មវិធី។ វាមាននូវ
docker daemon,images,containers,networks, និងstorage។
3. Docker Registry
Docker Registry ប្រើសម្រាប់គ្រប់គ្រងនិងរក្សាទុកនៅ Docker images។
វាមានពីរប្រភេទនៃ Docker Registry ដែលមានដូចខាងក្រោម៖
- Public Registry - ដែលត្រូវបានគេស្គាល់ថាជា Docker hub។
- Private Registry - វាប្រើសម្រាប់ចែករំលែកនូវ
imagesជាលក្ខណៈសហគ្រាស។
Docker Objects
- Docker Objects មានដូចខាងក្រោម៖
Docker Images
- Docker images ជា
read-only binary templatesដែលប្រើសម្រាប់បង្កើតនូវ Docker containers។
Docker Containers
Containers ជាគ្រោងឆ្អឹងឯកតាមួយនៃ Docker ដែលប្រើសម្រាប់ផ្ទុកនូវកញ្ចប់ទាំងមូលដែលត្រូវការដើម្បីអាចដំណើរការកម្មវិធីបាន។ ហើយអត្ថប្រយោជន៍នៃ
containersគឺវាទាមទារនូវធនធានតិចណាស់។ម្យ៉ាងទៀត យើងអាចនិយាយបានថា
imageជាtemplateហើយcontainerគឺជាការចម្លងនៃtemplateនោះ។

Docker Networking
- ប្រើប្រាស់ Docker Networking គឺដោយសារឲ្យកញ្ចប់នីមួយៗដែលដាច់ដោយឡែកអាចទាក់ទងគ្នាបាន។ Docker មាន
network driversដូចខាងក្រោម៖- Bridge - វាជាលំនាំដើមនៃ
network driverសម្រាប់container។ វាត្រូវបានប្រើប្រាស់នៅពេលដែលdockerជាច្រើនមានទំនាក់ទំនងជាមួយdocker hostដូចគ្នា។ - Host - វាប្រើនៅពេលដែលយើងមិនត្រូវការ
networkដែលដាច់ដោយឡែករវាងcontainerនិងhost។ - None - វាបិទនូវ
networkingទាំងអស់។ - Overlay - វាផ្តល់ជូននូវ
swarm servicesដែលអាចមានទំនាក់ទំនងគ្នាទៅវិញទៅមក។ វាអនុញ្ញាតឲ្យcontainersអាចដំណើរការនៅលើdocker hostផ្សេងៗគ្នា។ - Macvlan - វាប្រើនៅពេលដែលយើងចង់កំណត់
MAC addressesទៅឲ្យcontainers។
- Bridge - វាជាលំនាំដើមនៃ
Docker Storage
- Docker Storage ប្រើសម្រាប់រក្សាទុកទិន្នន័យនៅលើ
container។ Docker ផ្តល់ជូននូវជម្រើសនៃstorageដូចខាងក្រោម៖- Data Volume - វាផ្តល់នូវសមត្ថភាពមួយដែលអាចបង្កើតនូវ
persistence storage។ វាក៏អនុញ្ញាតឲ្យយើងអាចដាក់ឈ្មោះឲ្យvolumes, បង្ហាញនូវvolumesទាំងអស់, និងcontainersដែលបានភ្ជាប់ជាមួយនឹងvolumes។ - Directory Mounts - វាគឺជាជម្រើសដ៏ល្អមួយសម្រាប់
docker storage។ វាmountsទិន្នន័យពីhost's directoryទៅក្នុងcontainer។ - Storage Plugins - វាផ្តល់នូវសមត្ថភាពមួយដែលអាចតភ្ជាប់ទៅកាន់
external storage platforms។
- Data Volume - វាផ្តល់នូវសមត្ថភាពមួយដែលអាចបង្កើតនូវ