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 - វាផ្តល់នូវសមត្ថភាពមួយដែលអាចបង្កើតនូវ