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
។